容器服务 AIOps 套件中的集群巡检功能,沉淀了火山引擎内部丰富的集群巡检经验和处理方案。本文为您介绍集群巡检项、检查内容和修复方式。
说明
本文中的 Workload 副本数修改、资源配额修改的参考文档,均以 Deployment 为例。其他类型 Workload 的配置方法相同。
巡检项 | 检查内容 | 修复建议 | 参考文档 |
---|---|---|---|
VCI 依赖的网络配额检查 | 检查集群 VCI 实例的网络配额是否耗尽。配额耗尽无法正常创建弹性容器。 | 提交申请,提升配额。 | 无 |
VCI 配额检查 | 检查集群 VCI 配额是否耗尽。配额耗尽会导致集群无法创建弹性容器实例。 | 提交申请,提升配额。 | 使用限制 |
集群 CLB 配额 | 检查集群公网 CLB 配额和私网 CLB 配额用量是否 > 80%。配额耗尽会导致 Service/Ingress 创建失败。 | 提交申请,提升配额。 | 依赖底层云产品配额限制 |
集群 Node 配额 | 检查集群节点配额用量是否 > 80%。配额耗尽会导致集群无法添加节点。 | 提交申请,提升配额。 | 集群配额限制 |
节点池配额 | 检查集群节点池配额。配额耗尽会导致集群无法添加节点池。 | 提交申请,提升配额。 | 集群配额限制 |
巡检项 | 检查内容 | 修复建议 | 参考文档 |
---|---|---|---|
节点 CPU 使用率过高 | 检查节点 CPU 使用率是否 > 80%。使用率过高可能导致 CPU 资源抢占,影响业务的正常运行。 |
| |
节点内存水位过高 | 检查节点内存使用率是否 > 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 资源争抢,影响业务的正常运行。 |
巡检项 | 检查内容 | 修复建议 | 参考文档 |
---|---|---|---|
节点 NotReady | 检查集群中是否存在 NotReady 的节点。如果节点状态异常,会导致 Pod 无法被调度到该节点上。 | 查看节点状态,必要时新增或删除节点。 | 节点状态 |
VCI 虚拟节点状态 | 检查集群中 VCI 虚拟节点的状态。如果节点状态异常,会导致无法正常创建弹性容器实例。 | 请联系技术支持处理。 | 无 |
巡检项 | 检查内容 | 修复建议 | 参考文档 |
---|---|---|---|
Node 安全组不一致 | 检查集群所有节点的安全组是否一致。安全组不一致可能导致部分节点访问网络不通,导致网络异常。 | 配置所有节点的安全组一致。 | |
CoreDNS 组件状态 | 检查 CoreDNS 组件是否为 非 Running 状态。该组件异常会导致集群内 DNS 解析错误,无法通过 Service 名称进行访问。 | 检查 CoreDNS 组件状态,排除异常原因。 | 组件 FAQ |
集群 kubeconfig 证书过期检查 | 检查集群中的 kubeconfig 证书是否临期或过期,kubeconfig 证书过期后,用户将无法使用该证书访问集群。不同的临期或过期时间,告警状态不同,包括:
| 重新申请新证书,并对过期证书进行清理。 | |
Workload 副本 | 检查工作负载的期望副本数和实际副本数是否一致。如不一致,则不满足高可靠性要求。 | 检查副本数异常工作负载,排除异常原因,更新副本数。 | 管理无状态负载 |
DaemonSets 状态检测 | 检查 DaemonSets 数量是否和节点数量一致。如未达到预期副本数,则可能导致相关功能异常。 | 检查副本数异常原因,排除异常原因,更新副本数。 | 管理守护进程 |
VPC 网络内镜像仓库服务是否可用 | 集群所在的 VPC 内无法访问镜像仓库,该问题将导致使用指定镜像的 Pod 无法启动。 | 检查集群所在 VPC 内是否连通了镜像仓库实例。 | 连通本账号 VPC |
CoreDNS 高可用 | 检查 CoreDNS 组件的副本数是否 > 2,且不同副本部署在不同的节点中。如未达到预期要求,则 CoreDNS 不具备高可用性,存在单点失效风险。当节点宕机或重启的时,CoreDNS 将无法提供服务,影响业务正常运行。 | 检查 CoreDNS 副本状态,保持 2 个以上副本,并将副本打散到不同的节点上。 | CoreDNS 最佳实践 |
CoreDNS 组件状态 | 检查 CoreDNS 组件是否为 非 Running 状态。该组件异常会导致集群内 DNS 解析错误,无法通过 Service 名称进行访问。 | 检查 CoreDNS 组件状态,排除异常原因。 | 组件 FAQ |
节点池配置检测 | 检查集群的节点池功能。节点池缺失,可能导致节点高负载,Pod 扩容失败。 | 配置节点池。 | 创建节点池 |
集群 WorkerNode 节点数 | 检查集群中 Worker 节点的数量是否 < 2 个。单个节点的集群存在单点失效问题。 | 扩容节点或创建节点池。 | |
集群删除保护 | 检查集群是否开启 删除保护 功能。如未开启,集群有可能被控制台或 API 误删除,导致业务故障。 | 开启删除保护功能。 | |
Loadbalancer Service 和对应 CLB 配置检查 | 检查创建负载均衡服务(Loadbalancer Service)时 Annotation 中的 CLB 配置,与 CLB 控制台上是否一致。 说明 当前仅检查 CLB 的 实例计费类型 和 实例规格 配置,对应的 Annotation 为 | 修改负载均衡服务中的 Annotation,保证 VKE 侧的配置与 CLB 控制台的一致。 | |
集群 CLB 状态检查 | 检查集群 CLB 是否正常。CLB 异常会导致集群 kube-apiserver 服务不可用。 | 在 负载均衡控制台 中查看集群 CLB 的状态。 | 查看集群 CLB |
审计日志开启检测 | 检查集群是否开启 集群审计 功能。开启审计功能,可以方便集群日常问题的排查和分析。 | 开启集群审计功能。 | 集群审计 |