我重新启动了 kubernetes 主节点,之后,当我执行 getnodes 命令时,它显示工作节点具有
NotReady
状态。
如何防止主节点每次重启后出现这种情况?
Kubernetes 中节点有 4 种可用状态。
Ready
表示节点运行状况良好并准备好运行 Pod
SchedulingDisabled
表示该节点无法接受新的 Pod
NotReady
表示节点不健康,无法运行 pod
Unknown
表示节点不可用
所以你无法阻止节点将来处于NotReady状态。有几个步骤可以查明发生了什么:
检查节点资源 首先可以通过SSH登录节点,使用命令
top
、free
、uptime
、ss
查看节点资源。或者在监控仪表板中检查它(如果有的话)。
检查条件部分 您可以运行
kubectl describe node <node-name>
并检查输出中的条件部分。
MemoryPressure
表示该节点内存不足
DiskPressure
表示节点磁盘空间不足
PIDPressure
表示节点上进程过多
NetworkUnavailable
表示网络有问题
Ready
- 该字段可以有 True
、False
或 Unknown
值。如果值为 Unknown
- 这意味着节点控制器在 node-monitor-grace-period
内没有来自节点的消息(默认情况下为 40 秒)
检查K8s组件 您还可以通过 SSH 连接到节点并检查 K8s 组件,例如
kube-proxy
、kubelet
和 docker(或 containerd)
kubectl logs [pod name] -n kube-system
systemctl status kubelet
systemctl status docker/containerd
终于可以查看集群事件了
kubectl get events —all-namespaces