K8s节点健康监控全流程解析

K8s节点健康监控全流程解析

       在kubernetes集群中,节点健康状态的监测、通知和响应是由多个核心组件协同完成的分布式过程,具体分工如下:

一、监测机制:由节点代理与控制平面共同完成

1、kubelet(核心节点代理)
    运行在每个节点上,是节点健康监测第一责任人。
    1)监测范围: 
        节点资源状态:通过cAdvisor收集CPU、内存、磁盘等系统指标。
        容器健康状态:通过probemanager执行livenessPorbe(存活探针)和readinessProbe(就绪探针),支持HTTP/TCP/命令三种检查方式。
        Pod状态:定期向API Server上报节点上所有pod的状态(如Running、Pending、Failed)。
    2)数据暴露端口:
         10248:健康检查端口(如/healthz);
         10255:只读API端口,提供节点与pod信息(无需认证)。
  2、控制平面组件
    1)kube-controller-manager
      内含node-controller,通过API Server监听节点状态(如Node Ready),若节点超时未上报心跳(默认40秒),将其标记为NotReady。
    2)kube-scheduler
      依赖节点健康状态决策pod调度(如避开NotReady节点)。

二、通知机制:状态上报与告警

1、状态上报与告警  
    kubelet定期(默认10秒)向API Server发送节点心跳(Nodestatus),包含资源使用、Pod状态等。
    若节点故障,node-controller更新节点状态为NotReady,并写入etcd。
  2、告警通知
    1)内置告警规则:
      例如Prometheus监控集群时,可配置规则(如节点CPU>80%持续5分钟出发告警)。
   2)自定义通知:
      集成外部系统(如grafana、腾讯云可观测AI工作台),通过web hook/邮件/Slack等发送告警。

三、响应机制:自动化处理与人工介入

1、自动化响应
    1)Pod驱逐:
      当节点NotReady时,node-controller自动驱逐其上的pod(默认5分钟容忍期),并由调度器迁移到健康节点。
    2)资源回收:
      eviction manager在节点资源不足时(如内存耗尽)按QoS优先级驱逐Pod。
    3)自愈操作:
      若容器探针失败,kubelet自动重启容器(根据restartPolicy)。
  2、人工介入场景
    1)硬件故障、网络分区等需运维人员处理;
    2)通过日志(kubectl logs)或工具(如Prometheus/grafana仪表盘)分析根因;
   3) 使用诊断工具(如kubelet pod_analyze)定位问题。

总结:责任分工

组件 监测职责 通知与响应
kubelet节点资源、容器健康、pod状态上报状态至API Server;重启失败容器
node-controller监听节点心跳超时标记NotReady状态;触发pod驱逐
kube-scheduler依赖节点状态调度避开不健康节点
运维系统/告警平台聚合指标与日志 发送告警;提供根因分析与修复建议(如AI工作台)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值