Node Controller

Node Controller 是 Kubernetes 控制平面中的一个关键子控制器,它负责监控集群中所有节点的健康状态,并在节点失效时触发 Pod 的重新调度。它是保证集群高可用和稳定运行的核心机制之一。


🧩 Node Controller 的职责

  • 节点健康检查
    • 定期通过 API Server 获取节点的心跳信息。
    • 如果节点长时间没有响应(默认 40 秒内无心跳),会将该节点标记为 NotReady。
  • Pod 驱逐与重新调度
    • 当节点不可用时,Node Controller 会触发 Pod 的驱逐。
    • Scheduler(人事经理)会把这些 Pod 重新分配到健康的节点上。
  • 节点生命周期管理
    • 负责节点的注册与移除。
    • 例如:当 kubelet 启动时,它会自动向 API Server 注册自己,Node Controller 会验证其合法性。

📌 类比理解

  • Node Controller = 工厂检查员
    • 它每天巡视各个工厂(节点),确认工厂是否正常运转。
    • 如果某个工厂停工(节点失效),它会通知人事经理(Scheduler)把工人(Pod)调到其他工厂。

⚠️ 风险与影响

  • 节点失效时:Pod 会被重新调度,但可能导致服务短暂中断。
  • 配置不当:如果健康检查时间过短,可能误判节点不可用;过长则会延迟故障恢复。
  • 高可用集群:通常需要多个节点,避免单点故障。

💡 总结

  • Node Controller 是 集群健康的守护者。
  • 它通过监控节点心跳,确保 Pod 不会停留在失效节点上。
  • 与 Scheduler 配合,保证应用始终运行在可用节点上。
posted @ 2026-05-28 11:10  Donaver  阅读(17)  评论(0)    收藏  举报