驱动程序配置不正确 cgroup Kubernetes

安装 Docker 默认B. CentOS 首先

systemd

Cgroup. 我已经安装了 Kubernetes 来自官方存储库 YUM 和 systemd

drop-in 10-kubeadm.conf

它具有以下内容:

[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"
Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"
Environment="KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10 --cluster-domain=cluster.local"
Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt"
Environment="KUBELET_CADVISOR_ARGS=--cadvisor-port=0"
Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"
Environment="KUBELET_CERTIFICATE_ARGS=--rotate-certificates=true --cert-dir=/var/lib/kubelet/pki"
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS

我也试图获得可变环境,看看它是否正确掉了 systemd drop-in (

systemctl show --property=Environment kubelet | cat

):

Environment=KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf\x20--kubeconfig=/etc/kubernetes/kubelet.conf 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_CERTIFICATE_ARGS=--rotate-certificates=true\x20--cert-dir=/var/lib/kubelet/pki

当我使用初始化群集时

kubeadm init --apiserver-advertise-address=X.X.X.X --pod-network-cidr=10.244.0.0/16

, 这个过程是成功的。 但是,运行。

kubelet version

给了我错误的配置错误 Cgroup:

error: failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"

版本

CentOS Linux 版本 7.4.1708 (Core)

版本 Kubernetes (

kubectl version

): 1.9 (GitVersion: 1.9.1; 版本 Go: go1.9.2)

文档版本 (

docker version

): 1.12.6

这个问题的正确解决方案是什么? 我试图改变 Cgroup Kubernetes 在 cgroupfs, 但 kubeadm 继续给我一个错误 «kubelet 没有响应。 ” 我怎样才能得到 Kubernetes 拍摄传输的参数 CGroup?
已邀请:

莫问

赞同来自:

嗨是同样的问题。 你需要确保 Docker 和 Kubelet 与同一司机合作 cgroup.

在 Centos Docker 跑步B. cgroupfs, 和 kubelet - 在 cgroup systemd. 要更改它,您需要遵循文档 Kubelet:
https://kubernetes.io/docs/set ... -node
要解决它,您需要:

sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

然后重新启动滴

systemctl daemon-reload
systemctl restart kubelet

君笑尘

赞同来自:

更改文件 / etc / sysconfig / kubelet, 在指定您的价值时 cgroup-driver, 例如:

KUBELET_EXTRA_ARGS=--cgroup-driver=<value>

为了得到自己的

司机 Docker Cgroup

:

docker info | grep -i 'cgroup driver'

然后重新启动

恶魔 systemd

并重启

对联

:

systemctl daemon-reload
systemctl restart kubelet

</value>

要回复问题请先登录注册