kubelet
本文分享了云原生应用交付过程中,需要注意的一些痛点问题及解决方案。
FAQ
节点重启后,有几率出现MatchNodeSelector的Pod
适用版本:所有
关键词:MatchNodeSelector,ConfigMap挂载失败
问题现象:当节点重启后,该节点上出现了一些处于MatchNodeSelector状态的Pod。
相关Issue:https://github.com/kubernetes/kubernetes/issues/92067
该问题本质上是因为kubelet启动时,同步Node信息缺少重试机制导致,社区已经解决:https://github.com/kubernetes/kubernetes/pull/94087,但需要K8s>=1.21
因此,对于我们提供的1.16/1.20版本的K8s,我们进行了手动Cherry Pick来修复。
修复方案:针对K8s版本v1.16.9-aliyun.1,对应Trident版本<=1.1.9.*
下载:
wget "https://acs-ecp.oss-cn-hangzhou.aliyuncs.com/rpm/ad9dff639b1c07be0f81d4ca97d276cbcbbed420/amd64/kubelet-1.16.9-1.x86_64.rpm?OSSAccessKeyId=LTAIUgj9QpNU****&Expires=1671324020&Signature=w1SiMC0gEdE%2BxunOy3tBcGePeuA%3D" -O kubelet-ad9dff639b1c07be0f81d4ca97d276cbcbbed420.rpm
安装,需要在每个节点执行:
# 暂停kubelet,不会对现有业务产生影响
systemctl stop kubelet
# 安装新的kubelet
rpm -ivh --force --nodeps kubelet-ad9dff639b1c07be0f81d4ca97d276cbcbbed420.rpm
# 启动kubelet
systemctl start kubelet
# 等待2min,检查节点,查看是否都是Ready状态
kubectl get no