k8s Node-problem-detector

# k8s Node-problem-detector ## Kubernetes集群可能存在的问题 - 基础架构守护程序问题: NTP服务关闭 - 硬件问题:CPU,内存或磁盘损坏 内核问题:内核死锁,文件系统损坏 - 容器运行时问题:运行时守护程序无响应 当Kubernetes中节点发生上述问题,在整个集群中,k8s服务组件并不会感知以上问题,就会导致pod仍会调度至问题节点。 ## Node-problem-detector 为了解决这个问题,社区引入了守护进程node-problem-detector,从各个守护进程收集节点问题,并使它们对上游层可见。 Kubernetes节点诊断的工具,可以将节点的异常,例如: - Runtime无响应; - Linux kernel无响应; - 网络异常 ; - 文件描述符异常; - 硬件问题如cpu,内存或者磁盘故障。 ## 故障分类 问题汇报手段 Node-problem-detector通过设置NodeCondition或者创建event对象来汇报问题。 NodeCondition: 针对永久性故障,会通过NodeCondition来改变节点状态 Event:临时故障通过event来提醒相关对象,比如通过当前节点运行的所有pod。 ## helm安装 [Node-problem-detector](https://github.com/deliveryhero/helm-charts/tree/master/stable/node-problem-detector) ``` helm repo add deliveryhero https://charts.deliveryhero.io/ helm install deliveryhero/node-problem-detector # 拉取到本地 helm fetch deliveryhero/node-problem-detector # 镜像拉取不到替换docker pull lank8s.cn/node-problem-detector/node-problem-detector:v0.8.15 ```