Kubernetes_从Linux的cgroup配置到Kubernetes中的cgroup配置
Posted 毛奇志
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes_从Linux的cgroup配置到Kubernetes中的cgroup配置相关的知识,希望对你有一定的参考价值。
系列文章目录
文章目录
前言
一、Linux层面的cgroup
cgroup是控制组,用来控制进程对资源的分配,这些资源包括 cpu memory devices
二、Kubernetes层面的cgroup driver
cgroup是控制组,有不同的cgroup driver,在kubernetes使用过程中,如果kubelet和底层的docker的cgroup driver不一致,会导致kubelet启动失败( systemctl restart kubelet 失败)。
2.1 kubelet和docker的Cgroup Driver不同导致kubelet开启失败
2.1.1 命令
查看docker的Cgroup Driver
docker info | grep Driver
查看kubelet 的Cgroup Driver
systemctl show --property=Environment kubelet | cat
修改docker的Cgroup Driver
vi /etc/docker/daemon.json
"exec-opts": ["native.cgroupdriver=systemd"]
修改kubelet 的Cgroup Driver
vi /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
–-cgroup-driver=systemd
#重启使之生效
systemctl daemon-reload
systemctl restart docker
systemctl restart kubelet
2.1.2 演示
注意看被 # 注释的文字
This is a file that “kubeadm init” and “kubeadm join” generates at runtime, populating the
KUBELET_KUBEADM_ARGS variable dynamically
这个文件是“kubeadminit”和“kubeadm join”在运行时生成的,动态填充KUBELET_kubeadm_ARGS变量。
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
第二段,如下:
This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
这是用户可以用于覆盖kubelet ARG作为最后手段的文件。优选地,用户应该在配置文件中使用.NodeRegistration.KubeletExtraArgs对象。KUBELET_EXTRA_ARGS应该来自这个文件。
EnvironmentFile=-/etc/sysconfig/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
总结
参考资料:Linux cgroup
Kubernetes cgroup
以上是关于Kubernetes_从Linux的cgroup配置到Kubernetes中的cgroup配置的主要内容,如果未能解决你的问题,请参考以下文章