K8s集群节点状态管理

YoungWendy +0/-0 0 0 正常 2025-12-24T07:01:19 Kubernetes · Node · 运维

K8s集群节点状态管理

在Kubernetes集群运维中,节点状态管理是保障集群稳定运行的关键环节。本文分享几个实用的节点状态管理和排查方法。

节点状态查看

首先,通过以下命令查看所有节点的状态:

kubectl get nodes

输出示例:

NAME         STATUS   ROLES    AGE   VERSION
node1        Ready    <none>   10d   v1.28.3
node2        NotReady   <none>   10d   v1.28.3

节点状态诊断

当节点处于NotReady状态时,可以通过以下方式排查:

  1. 查看节点事件:
kubectl describe node node2
  1. 检查节点资源使用情况:
kubectl top nodes
  1. 查看节点组件状态:
kubectl get componentstatuses

节点驱逐与恢复

如果需要将节点从集群中移除,可以使用以下命令:

# 污点节点(防止新Pod调度)
kubectl taint nodes node2 key=value:NoSchedule

# 驱逐节点上Pod
kubectl drain node2 --ignore-daemonsets --delete-local-data

# 恢复节点
kubectl uncordon node2

自动化监控脚本

#!/bin/bash
# 监控节点状态并发送告警
NODES=$(kubectl get nodes -o name)
for node in $NODES; do
  status=$(kubectl get $node -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}')
  if [ "$status" != "True" ]; then
    echo "Node $node is not ready!"
    # 这里可以集成告警系统
  fi
done

通过以上方法,可以有效管理K8s集群节点状态,保障业务稳定运行。

推广
广告位招租

讨论

0/2000
Ethan207
Ethan207 · 2026-01-08T10:24:58
节点NotReady真的挺折磨人的,特别是半夜收到告警。建议加个自动驱逐脚本,把异常节点的Pod快速迁移走,避免业务长时间中断。
WetLeaf
WetLeaf · 2026-01-08T10:24:58
kubectl describe node 真是排查问题的神器,我经常用它看节点的condition和event,基本能定位到是网络、资源还是组件挂了。
Gerald249
Gerald249 · 2026-01-08T10:24:58
自动化监控脚本不错,但最好加上邮件或钉钉告警集成,不然光看日志容易漏掉。另外建议定期检查节点污点设置,避免误操作导致调度异常。