kubelet因kubelet cgroup驱动程序失败:与docker cgroup驱动程序不同: [英] kubelet failed with kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"
问题描述
cgroup driver
的配置在/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"
我还用cli检查了Environment
$ systemctl show --property=Environment kubelet | cat
Environment=KUBELET_KUBECONFIG_ARGS=--kubeconfig=/etc/kubernetes/kubelet.conf\x20--require-kubeconfig=true KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests\x20--allow-privileged=true KUBELET_NETWORK_ARGS=--network-plugin=cni\x20--cni-conf-dir=/etc/cni/net.d\x20--cni-bin-dir=/opt/cni/bin KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10\x20--cluster-domain=cluster.local KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook\x20--client-ca-file=/etc/kubernetes/pki/ca.crt KUBELET_CADVISOR_ARGS=--cadvisor-port=0 KUBELET_CGROUP_ARGS=--cgroup-driver=systemd
KUBELET_CGROUP_ARGS=--cgroup-driver=systemd
KUBELET_CGROUP_ARGS=--cgroup-driver=systemd
如何复制它:
- yum install -y docker-1.12.6
- systemctl启用docker&& systemctl启动docker
- setenforce 0
- yum install -y kubelet kubeadm
- systemctl enable kubelet&& systemctl启动kubelet
- systemctl守护程序重新加载
- systemctl重新启动kubelet
- 小手日志
环境:
- Kubernetes版本(使用
kubectl version
):1.7.3 - 云提供商或硬件配置**:4核心16G RAM
- OS(例如,从/etc/os-release中获取):CentOS Linux 7(Core)
- 内核(例如<c5>):Linux 10-8-108-92 3.10.0-327.22.2.el7.x86_64#1 SMP 2016年6月23日星期四17:05:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
- 安装工具:kubeadm
- Kubernetes version (use
kubectl version
): 1.7.3 - Cloud provider or hardware configuration**: 4 core 16G RAM
- OS (e.g. from /etc/os-release): CentOS Linux 7 (Core)
- Kernel (e.g.
uname -a
): Linux 10-8-108-92 3.10.0-327.22.2.el7.x86_64 #1 SMP Thu Jun 23 17:05:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux - Install tools: kubeadm
推荐答案
可能的原因
kubelet 1.7.3无法读取配置文件/etc/systemd/system/kubelet.service.d /10-kubeadm.conf#50748
如果您正在使用CentOS,并且在设置主节点时遇到困难,请确认您的Docker cgroup驱动程序与kubelet配置匹配:
If you are using CentOS and encounter difficulty while setting up the master node, verify that your Docker cgroup driver matches the kubelet config:
docker info | grep -i cgroup
cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
如果Docker cgroup驱动程序和kubelet配置不匹配,请更改kubelet配置以匹配Docker cgroup驱动程序.您需要更改的标志是--cgroup-driver.如果已设置,则可以这样更新:
If the Docker cgroup driver and the kubelet config don’t match, change the kubelet config to match the Docker cgroup driver. The flag you need to change is --cgroup-driver. If it’s already set, you can update like so:
sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
这可以替换为:
CG=$(sudo docker info 2>/dev/null | sed -n 's/Cgroup Driver: \(.*\)/\1/p')
sed -i "s/cgroup-driver=systemd/cgroup-driver=$CG/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
这篇关于kubelet因kubelet cgroup驱动程序失败:与docker cgroup驱动程序不同:的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!