kubernetes - 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
解决方案
节点可能有问题。使用其中一些(示例)进行调试:
$ 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
核选项:
如果您使用的是节点池,请删除您的节点并让自动缩放器重新启动全新的节点。
✌️
推荐阅读
- vbscript - 登录按钮元素 VB 脚本
- python - 为 JSONDecodeError 编写循环/异常
- android - 如何从测试应用程序更改设备(Android、iOS)日期?
- php - 无法在 Wordpress 项目中正确读取 cookie 值(使用 WP Rocket 缓存插件)
- javascript - 如何单独选择每个匹配的选择器
- kubernetes - 如何优雅地停止单节点 Kubernetes 集群
- javascript - 从 HTML 输入 onchange 属性调用 TypeScript 文件中定义的函数
- wordpress - 允许用户选择他们的角色
- asp.net-mvc - 在数据库列中保存表单字段数据(字符串)
- algorithm - 如何测量执行汇编代码所需的“时间单位”