kubectl 服務無法啓動

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

2、原因:
kubelet文件驅動默認cgroupfs, 而我們安裝的docker使用的文件驅動是systemd, 造成不一致, 導致鏡像無法啓動。

3、處理:
現在有兩種方式, 一種是修改docker, 另一種是修改kubelet。

網上大部分說修改daemon.josn

#修改daemon.json
vi /etc/docker/daemon.json
#添加如下屬性
"exec-opts": [
    "native.cgroupdriver=systemd"

]

這樣會導致修改後,docker無法啓動成功,提示daemon.json與/lib/systemd/system/docker.service中native.cgroupdriver=systemd重複存在。

4、操作修改docker.service

(1)修改前查看docker Cgroup Driver
shell> docker info | grep Driver
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Storage Driver: overlay2
Logging Driver: json-file
Cgroup Driver: systemd
...
(2)修改docker.service
shell> vi /lib/systemd/system/docker.service

找到
--exec-opt native.cgroupdriver=systemd
修改爲:
--exec-opt native.cgroupdriver=cgroupfs

(3)重啓docker
shell> systemctl daemon-reload
shell> systemctl restart docker

(4)重啓kubelet
shell> systemctl restart kubelet

(5)查看k8s集羣,node是否正常
shell> kubectl get node
NAME STATUS ROLES AGE VERSION
node140 Ready master 126d v1.17.0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章