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

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

说明

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

资源配额

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

资源水位

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

节点 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 资源争抢,影响业务的正常运行。

节点诊断

巡检项检查内容修复建议参考文档
节点 NotReady检查集群中是否存在 NotReady 的节点。如果节点状态异常,会导致 Pod 无法被调度到该节点上。查看节点状态,必要时新增或删除节点。节点状态
VCI 虚拟节点状态检查集群中 VCI 虚拟节点的状态。如果节点状态异常,会导致无法正常创建弹性容器实例。请联系技术支持处理。

集群风险

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

Node 安全组不一致

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

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

CoreDNS 组件状态检查 CoreDNS 组件是否为 非 Running 状态。该组件异常会导致集群内 DNS 解析错误,无法通过 Service 名称进行访问。检查 CoreDNS 组件状态,排除异常原因。组件 FAQ

集群 kubeconfig 证书过期检查

检查集群中的 kubeconfig 证书是否临期或过期,kubeconfig 证书过期后,用户将无法使用该证书访问集群。不同的临期或过期时间,告警状态不同,包括:

  • 警告: 证书临近过期,即证书有效期 < 7 天。
  • 异常: 证书已经过期,即存在已过期的 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 为volcengine-loadbalancer-billing-typevolcengine-loadbalancer-spec

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

使用 Annotation 配置负载均衡服务

集群 CLB 状态检查检查集群 CLB 是否正常。CLB 异常会导致集群 kube-apiserver 服务不可用。负载均衡控制台 中查看集群 CLB 的状态。查看集群 CLB
审计日志开启检测检查集群是否开启 集群审计 功能。开启审计功能,可以方便集群日常问题的排查和分析。开启集群审计功能。集群审计