kubelet get nodes
发现node处理NotReady状态,然后发现是node的kubelet一直在重启,查看日志
这样查看:
journal -f -u kubelet
有如下错误:
E1110 09:56:55.648738 19412 kubelet.go:1823] skipping pod synchronization - container runtime status check may not have completed yet
后来百度到一个仁兄的文章,说:
这个问题官方社区早有定论
https://github.com/kubernetes/kubernetes/issues/76820
由于我们cgroupdriver使用了systemd,因此我们需要升级systemd
在此我建议新建集群时,先执行一次yum update -y
如果操作系统本身较新可能无此问题。
原文链接:https://www.gl.sh.cn/2021/07/04/kubelet_qi_dong_yi_chang.html
接着yum升级一下。
接着启动一台kubelet试试,再在master节点看状态
[root@master1 src]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
node1 Ready <none> 23h v1.20.1
node2 NotReady <none> 23h v1.20.1
node3 NotReady <none> 23h v1.20.1
状态为ready了,哈哈,原来是这个原因。这个过程中,一开始kubelet.service设置了Restart=on-faiure,所以看日志不太方便,把它注释后,它不会一直尝试重启,方便看日志
[root@node1 kubernetes]# cat /usr/lib/systemd/system/kubelet.service
[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/kubernetes/kubernetes
After=docker.service
Requires=docker.service
[Service]
WorkingDirectory=/var/lib/kubelet
ExecStart=/usr/local/bin/kubelet \
--bootstrap-kubeconfig=/etc/kubernetes/kubelet-bootstrap.kubeconfig \
--cert-dir=/etc/kubernetes/ssl \
--kubeconfig=/etc/kubernetes/kubelet.kubeconfig \
--config=/etc/kubernetes/kubelet.json \
--network-plugin=cni \
--pod-infra-container-image=k8s.gcr.io/pause:3.2 \
--alsologtostderr=true \
--logtostderr=false \
--log-dir=/var/log/kubernetes \
--v=4
#Restart=on-failure
#RestartSec=5
[Install]
WantedBy=multi-user.target
记录一下
网友评论