CCE Node Problem Detector 说明
更新时间:2023-03-28
组件介绍
在 Kubernetes 集群的实际使用过程中,节点可能由于各种原因出现异常,导致影响服务的整体可用性。另外,由于 Kubernetes 的控制面在默认情况下,无法及时感知节点异常,导致在调度的过程中,将实例调度到不可用的节点上;而作为集群的使用者,用户往往也无法及时感知到集群中节点或实例的故障,导致不能及时进行止损处理。当遇到节点或实例故障时,用户期望平台能实现自动的故障恢复,例如自动迁移故障节点上的实例等。
Node-Problem-Detector 是为集群提供节点故障检测的扩展能力,用户在集群中安装该组件后,会以 DeamonSet 形式运行,来实时检测节点上的各种异常情况,并将检测结果报告给上游的 Kube-APIServer。
组件功能
- 提供节点故障检测能力
-
支持的故障上报方式包括
- NodeCondition(节点状况):可能造成 Pod 无法在这个节点运行
- Event(事件):影响节点的临时性问题,但是它对于系统诊断是有意义的
- Metrics:以上两种情况,会同时生成 Prometheus 指标,可供采集和展示
限制说明
- 集群版本在 1.18.9 以上
安装组件
- 登录百度智能云官网,并进入管理控制台。
- 选择“产品服务 > 云原生 > 容器引擎 CCE”,单击进入容器引擎管理控制台。
- 单击左侧导航栏中的 集群管理 > 集群列表 。
- 在集群列表页面中,单击目标集群名称进入集群管理页面。
- 在集群管理页面单击 组件管理 。
- 在组件管理列表中选择 CCE Node Problem Detector 组件单击“安装”。
- 点击“确定”按钮完成组件的安装。
查看集群健康检查状态
安装组件后,可以在节点健康检查界面查看故障情况。
- 登录百度智能云官网,并进入管理控制台。
- 选择“产品服务 > 云原生 > 容器引擎 CCE”,单击进入容器引擎管理控制台。
- 单击左侧导航栏中的 集群管理 > 集群列表 。
- 在集群列表页面中,单击目标集群名称进入集群管理页面。
- 在集群管理页面单击 节点管理 > Worker , 进入节点管理界面。
- 点击 健康检查 图标即可展示节点的健康检查状态:
- 查看健康检查状态。目前,仅 NetworkUnavailable 和 Ready 会影响节点是否可用。
附录
Node Conditions
安装 CCE-Node-Problem-Detector 后,会在节点中添加以下 Conditions:
Condition Type | 默认值 | 说明 | 影响 |
---|---|---|---|
FrequentKubeletRestart | False | Kubelet是否在20Min内重启超过5次 | 影响容器创建 |
FrequentContainerRuntimeRestart | False | Docker或Containerd是否在20Min内重启超过5次 | 影响容器创建 |
ContainerRuntimeUnhealthy | False | 节点容器运行时是否可用 | 影响容器创建 |
CorruptDockerOverlay2 | False | Docker Overlay2文件系统错误 | 影响 Docker 容器运行时正常运行 |
InodesPressure | False | 节点Inodes使用是否大于80% | 影响目录/文件的创建 |
KernelDeadlock | False | 内核是否存在死锁 | 可能影响容器的创建、删除和运行 |
ReadonlyFilesystem | False | 文件系统是否只读 | 进程无法新建目录/文件,无法执行写操作 |