二进制安装k8s,node处于NotReady状态的处理

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         23h   v1.20.1
node2   NotReady      23h   v1.20.1
node3   NotReady      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

记录一下

你可能感兴趣的:(二进制安装k8s,node处于NotReady状态的处理)