语境
我们目前正在使用一些带有v1.8.7的集群(该集群是几个月前由当前不可用的开发人员创建的),并正在尝试升级到更高版本。
但是,我们想在用于实验和POC的群集上尝试相同的方法。
我们尝试了什么
为此,我们尝试在一个主节点上运行一些kubeadm命令,但未找到kubeadm。
因此,我们尝试使用命令安装相同的文件-
apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl
发生了什么
但是,现在该节点的状态为“未就绪”,并且kubelet服务失败
关于如何解决此问题以及我们应该做什么的任何指示?
root@k8s-master-dev-0:/home/azureuser# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master-dev-0 NotReady master 118d v1.8.7
k8s-master-dev-1 Ready master 118d v1.8.7
k8s-master-dev-2 Ready master 163d v1.8.7
k8s-agents-dev-0 Ready agent 163d v1.8.7
k8s-agents-dev-1 Ready agent 163d v1.8.7
k8s-agents-dev-2 Ready agent 163d v1.8.7
root@k8s-master-dev-0:/home/azureuser# systemctl status kubelet.service
● kubelet.service - Kubelet
Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/kubelet.service.d
└─10-kubeadm.conf
Active: failed (Result: start-limit-hit) since Thu 2018-12-13 14:33:25 UTC; 18h ago
Dec 13 14:33:25 k8s-master-dev-0 systemd[1]: kubelet.service: Control process exited, code=exited status=2
Dec 13 14:33:25 k8s-master-dev-0 systemd[1]: Failed to start Kubelet.
Dec 13 14:33:25 k8s-master-dev-0 systemd[1]: kubelet.service: Unit entered failed state.
Dec 13 14:33:25 k8s-master-dev-0 systemd[1]: kubelet.service: Failed with result 'exit-code'.
Dec 13 14:33:25 k8s-master-dev-0 systemd[1]: kubelet.service: Service hold-off time over, scheduling restart.
Dec 13 14:33:25 k8s-master-dev-0 systemd[1]: Stopped Kubelet.
Dec 13 14:33:25 k8s-master-dev-0 systemd[1]: kubelet.service: Start request repeated too quickly.
Dec 13 14:33:25 k8s-master-dev-0 systemd[1]: Failed to start Kubelet.
Dec 13 14:33:25 k8s-master-dev-0 systemd[1]: kubelet.service: Unit entered failed state.
Dec 13 14:33:25 k8s-master-dev-0 systemd[1]: kubelet.service: Failed with result 'start-limit-hit'.
最佳答案
您的kubelet进入不良状态的原因是,您必须更新kubelet的升级的kubelet软件包和服务文件,并且如果您之前做过,则必须丢失某些更改。
您可以尝试以下操作:
swapoff -a
/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
,并检查值--cgroup-driver
,如果它是systemd
,则将其命名为cgroupfs
,然后:重新加载守护程序并重新启动kubelet:
systemctl daemon-reload
systemctl restart kubelet
现在检查您的kubelet是否启动。
PS:应该认真完成kubeadm控制平面的实时升级,请检查我有关如何升级kubeadm的答案
how to upgrade kubernetes from v1.10.0 to v1.10.11
关于kubernetes - kubelet.service:服务延期超时,计划重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53776890/