首页 > 解决方案 > Kubernetes ALL 工作负载在部署单个更新时失败

问题描述

更新后端代码(将更新推送到 gcr.io)后,我删除了 pod。通常一个新的吊舱会旋转起来。

但是今天之后整个集群就崩溃了。我真的无法理解这里发生了什么(我没有触及任何其他项目)。

我真的在黑暗中寻找。我从哪里开始寻找?

我看到日志显示:

0/2 nodes are available: 2 node(s) had taints that the pod didn't tolerate.

当我查找时:

kubectl describe node | grep -i taint
Taints:             node.kubernetes.io/unreachable:NoSchedule
Taints:             node.kubernetes.io/unreachable:NoSchedule

但我不知道这是什么,也不知道他们是如何到达那里的。

编辑:

看起来我需要删除污点,但我不能(未找到污点?)

kubectl taint nodes --all node-role.kubernetes.io/unreachable-
taint "node-role.kubernetes.io/unreachable" not found
taint "node-role.kubernetes.io/unreachable" not found

在此处输入图像描述

标签: kubernetesgoogle-kubernetes-engine

解决方案


节点可能有问题。使用其中一些(示例)进行调试:

$ kubectl get nodes
NAME         STATUS     ROLES    AGE   VERSION
k8s-master   Ready      master    1d    v1.14.2
k8s-node1    NotReady   <none>    1d    v1.14.2
k8s-node2    NotReady   <none>    1d    v1.14.2 <-- Does it say NotReady?
$ kubectl describe node k8s-node1
...
 # Do you see something like this? What's the event message?
 MemoryPressure...
 DiskPressure...
 PIDPressure...

检查 kubelet 是否在每个节点上运行(它可能会崩溃并重新启动)

ssh k8s-node1
# ps -Af | grep kubelet
# systemctl status kubelet
# journalctl -xeu kubelet

核选项:

如果您使用的是节点池,请删除您的节点并让自动缩放器重新启动全新的节点。

相关问题/答案

✌️


推荐阅读