You need to enable JavaScript to run this app.
导航
巡检项说明和修复建议
最近更新时间:2024.08.21 17:06:28首次发布时间:2023.08.11 11:03:52

容器服务 AIOps 套件中的集群巡检功能,沉淀了火山引擎内部丰富的集群巡检经验和处理方案。本文为您介绍集群巡检项、检查内容和修复方式。

说明

本文中的 Workload 副本数修改、资源配额修改的参考文档,均以 Deployment 为例。其他类型 Workload 的配置方法相同。

集群风险

巡检项检查内容修复建议参考文档

集群删除保护

检查集群是否开启 删除保护 功能。如未开启,集群有可能被控制台或 API 误删除,导致业务故障。

开启删除保护功能。

集群 CLB 状态检查检查集群 CLB 是否正常。CLB 异常会导致集群 kube-apiserver 服务不可用。负载均衡控制台 中查看集群 CLB 的状态。查看集群 CLB
审计日志开启检测检查集群是否开启 集群审计 功能。开启审计功能,可以方便集群日常问题的排查和分析。开启集群审计功能。集群审计
节点池配置检测检查集群的节点池功能。节点池缺失,可能导致节点高负载,Pod 扩容失败。配置节点池。创建节点池

集群 WorkerNode 节点数

检查集群中 Worker 节点的数量是否 < 2 个。单个节点的集群存在单点失效问题。

扩容节点或创建节点池。

Node 安全组不一致

检查集群所有节点的安全组是否一致。安全组不一致可能导致部分节点访问网络不通,导致网络异常。

配置所有节点的安全组一致。

Workload 副本检查工作负载的期望副本数和实际副本数是否一致。如不一致,则不满足高可靠性要求。检查副本数异常工作负载,排除异常原因,更新副本数。管理无状态负载
DaemonSets 状态检测检查 DaemonSets 数量是否和节点数量一致。如未达到预期副本数,则可能导致相关功能异常。检查副本数异常原因,排除异常原因,更新副本数。管理守护进程
CoreDNS 组件状态检查 CoreDNS 组件是否为 非 Running 状态。该组件异常会导致集群内 DNS 解析错误,无法通过 Service 名称进行访问。检查 CoreDNS 组件状态,排除异常原因。组件 FAQ
CoreDNS 高可用检查 CoreDNS 组件的副本数是否 > 2,且不同副本部署在不同的节点中。如未达到预期要求,则 CoreDNS 不具备高可用性,存在单点失效风险。当节点宕机或重启的时,CoreDNS 将无法提供服务,影响业务正常运行。检查 CoreDNS 副本状态,保持 2 个以上副本,并将副本打散到不同的节点上。CoreDNS 最佳实践

Loadbalancer Service 和对应 CLB 配置检查

检查创建负载均衡服务(Loadbalancer Service)时 Annotation 中的 CLB 配置,与 CLB 控制台上是否一致。

说明

当前仅检查 CLB 的 实例计费类型实例规格 配置,对应的 Annotation 为volcengine-loadbalancer-billing-typevolcengine-loadbalancer-spec

修改负载均衡服务中的 Annotation,保证 VKE 侧的配置与 CLB 控制台的一致。

使用 Annotation 配置负载均衡服务

节点诊断

巡检项检查内容修复建议参考文档
节点 NotReady检查集群中是否存在 NotReady 的节点。如果节点状态异常,会导致 Pod 无法被调度到该节点上。查看节点状态,必要时新增或删除节点。节点状态

资源水位

巡检项检查内容修复建议参考文档

节点 CPU 使用率过高

检查节点 CPU 使用率是否 > 80%。使用率过高可能导致 CPU 资源抢占,影响业务的正常运行。

  • 增加节点数量。
  • 配置节点池。
  • 检查 Pod 资源配额(Request、Limit)。
节点内存水位过高检查节点内存使用率是否 > 80%。使用率过高可能导致 OOM(Out of Memory),影响业务的正常运行。
集群可分配内存不足检查节点已分配内存是否 > 80%。当可分配内存小于 Pod Request 值时,将无法创建 Pod。
集群可分配 CPU 不足检查节点已分配 CPU 是否 > 80%。当可分配 CPU 小于 Pod Request 值时,将无法创建 Pod。

节点 MaxPod 检查

检查节点可容纳新 Pod 的数量是否 < 2。达到上限后,将无法被调度新的 Pod。

  • 增加节点数量。
  • 创建节点池。

Pod 内存水位过高

检查 Workload 内存负载是否 > 95%,负载过高可能导致 OOM(Out of Memory),影响业务的正常运行。

  • 调整资源配额。
  • 增加实例数。
  • 配置弹性伸缩。
Pod CPU 使用率过高检查 Workload 的 CPU 负载是否 > 95%,负载过高可能导致 CPU 资源争抢,影响业务的正常运行。

资源配额

巡检项检查内容修复建议参考文档
集群 CLB 配额检查集群公网 CLB 配额和私网 CLB 配额用量是否 > 80%。配额耗尽会导致 Service/Ingress 创建失败。提交申请,提升配额。依赖底层云产品配额限制
集群 Node 配额检查集群节点配额用量是否 > 80%。配额耗尽会导致集群无法添加节点。提交申请,提升配额。集群配额限制
节点池配额检查集群节点池配额。配额耗尽会导致集群无法添加节点池。提交申请,提升配额。集群配额限制

资源配额(ResourceQuotas)

巡检项检查内容修复建议参考文档
VCI 依赖的网络配额检查检查集群 VCI 实例的网络配额是否耗尽。配额耗尽无法正常创建弹性容器。提交申请,提升配额。
VCI 配额检查检查集群 VCI 配额是否耗尽。配额耗尽会导致集群无法创建弹性容器实例。提交申请,提升配额。使用限制

节点诊断(NodeDiagnose)

巡检项检查内容修复建议参考文档
VCI 虚拟节点状态检查集群中 VCI 虚拟节点的状态。如果节点状态异常,会导致无法正常创建弹性容器实例。