集群巡检
更新时间:2024-12-27
容器引擎CCE提供集群巡检能力,可以帮助您发现容器服务集群中可能存在的潜在风险,包括:资源配额、集群风险、资源状态等(持续更新中),并针对异常巡检结果提供解决建议,提升运维效率。本文介绍如何使用集群巡检功能排查集群的潜在风险。
前提条件
- 已创建CCE集群。具体操作,请参见创建集群
- 已确保Kubernetes集群处于正常运行状态。访问CCE控制台,在集群列表页面,查看目标集群的集群状态。若集群状态为运行中,表示集群处于正常运行状态。
开启集群巡检
重要:使用集群巡检功能时,部分检查项将在您的容器集群内启动容器并采集检查项,采集的信息包括系统版本、负载、Docker、kubelet等运行状态及系统日志中关键错误信息。数据采集程序不会采集您的业务信息及敏感数据。
- 登录百度智能云管理控制台,进入“产品服务>云原生>容器引擎 CCE”,点击“集群管理>集群列表”,进入集群列表页面。
- 单击目标集群名称,然后在左侧导航栏,选择“集群巡检”。
- 在集群巡检页面右上侧,点击自动巡检&订阅配置,配置执行自动巡检的时间以及订阅报告的发送时间和接收方式。
- 您也可以在集群巡检页面,单击开始巡检,手动巡检集群。巡检完成后,将在报告列表区域显示相关信息。
查看巡检结果
- 登录百度智能云管理控制台,进入“产品服务>云原生>容器引擎 CCE”,点击“集群管理>集群列表”,进入集群列表页面。
- 单击目标集群名称,然后在左侧导航栏,选择 集群巡检
- 在集群巡检页面的巡检报告列表区域右侧的操作列,单击目标巡检报告ID。
- 集群巡检会按照触发风险的程度分为低危、中危和高危。如果集群某些巡检项因为未知原因没有执行成功,则会显示“未知”,您可按需提交工单。
- 集群巡检详细内容包含风险级别、风险项名称、异常影响及解决方案。关于集群巡检的常见风险预警及修复方案的更多信息,请参见集群巡检项及解决方案。
- 在检查报告页面,查看风险项、异常影响以及推荐的解决方案。
集群巡检项及解决方案
类型 | 巡检项 | 异常影响 | 修复建议 |
---|---|---|---|
资源配额 | VPC路由规则配额紧张 | 检查VPC内剩余路由表条目配额是否少于5条。 VPC路由模式下,集群每个节点都会消耗一条路由表规则,当路由表规则耗尽后,集群内无法添加新节点。(VPC-ENI模式下,集群不使用VPC路由表) |
前往配额中心申请增加VPC路由规则配额。 |
EIP实例配额紧张 | 检查集群所在地域可创建的个人/企业EIP实例数量是否小于5。 EIP配额不足可能影响集群、节点、服务开启公网访问。 |
前往配额中心申请增加EIP实例配额。 | |
ENI实例配额紧张 | 检查每个VPC可创建的未挂载主机的弹性网卡数量是否小于5。 ENI配额不足可能导致无法创建和加入节点。 |
前往配额中心申请增加ENI实例配额。 | |
BLB实例配额紧张 | 检查集群所在地域可创建的BLB实例数量是否小于5。 BLB配额不足可能影响service、ingress的创建。 |
前往配额中心申请增加BLB实例配额。 | |
BCC按需付费实例配额紧张 | 检查集群所在地域的按需付费BCC实例数是否大于95%。 配额不足影响节点创建。 |
前往配额中心申请增加按需付费BCC实例配额。 | |
CDS容量紧张 | 检查集群所在地域的CDS磁盘使用量占总容量(TB)是否大于95%。 配额不足影响节点及持久卷创建。 |
前往配额中心申请增加CDS容量配额。 | |
节点组实例规格可用库存紧张 | 检查节点组实例规格可用库存数量是否小于15。可用库存数量不足可能影响节点组伸缩。 | BCC提工单增加实例规格可用库存 或 使用其他BCC实例规格 | |
资源水位 | 集群可分配CPU是否充足 | 检查节点已分配 CPU 是否 > 80%。 当可分配 CPU 小于 Pod Request 值时,将无法创建 Pod。 |
1.增加节点数量。 2.通过工作负载-容器组或使用kubectl获取Pod YAML,找到resources字段,检查 Pod 资源配额(Request、Limit)。 |
集群可分配内存是否充足 | 检查节点已分配内存是否 > 80%。 当可分配内存小于 Pod Request 值时,将无法创建 Pod。 |
1.增加节点数量。 2.通过工作负载-容器组或使用kubectl获取Pod YAML,找到resources字段,检查 Pod 资源配额(Request、Limit)。 |
|
节点实时CPU使用率过高 | 检查节点 CPU 使用率是否 > 80%。 使用率过高可能导致 CPU 资源抢占,影响业务的正常运行。 |
1.增加节点数量。 2.通过工作负载-容器组或使用kubectl获取Pod YAML,找到resources字段,检查 Pod 资源配额(Request、Limit)。 |
|
节点实时内存水位过高 | 检查节点内存使用率是否 > 80%。 使用率过高可能导致 OOM(Out of Memory),影响业务的正常运行。 |
1.增加节点数量。 2.通过工作负载-容器组或使用kubectl获取Pod YAML,找到resources字段,检查 Pod 资源配额(Request、Limit)。 |
|
Pod CPU使用率过高 | 检查 Workload 的 CPU 负载是否 > 95%。 负载过高可能导致 CPU 资源争抢,影响业务的正常运行。 |
通过工作负载页面或使用kubectl编辑工作负载YAML,找到resources字段,调整资源配额(Request、Limit)。 通过工作负载页面点击伸缩增加期待Pod数,或使用kubectl编辑工作负载YAML增加实例数。 配置弹性伸缩策略(HPA)。 |
|
Pod内存水位过高 | 检查 Workload 内存负载是否 > 95%。 负载过高可能导致 OOM(Out of Memory),影响业务的正常运行。 |
通过工作负载页面或使用kubectl编辑工作负载YAML,找到resources字段,调整资源配额(Request、Limit)。 通过工作负载页面点击伸缩增加期待Pod数,或使用kubectl编辑工作负载YAML增加实例数。 配置弹性伸缩策略(HPA)。 |
|
节点磁盘使用率过高 | 检查节点磁盘使用率是否 > 80%。 使用率过高可能导致Pod被驱逐,影响业务的正常运行。 |
清理临时文件。 增加磁盘容量。 |
|
节点根目录容量使用率过高 | 检查节点根目录容量使用率是否 > 80%。 使用率过高可能影响业务的正常运行。 |
清理临时文件。 增加磁盘容量。 |
|
集群PFS使用率过高 | 检查PFS使用率是否 > 80%。 PFS使用率达到100%时,将无法向该文件系统写入增量数据,影响业务的正常运行。 |
PFS提工单扩容。 | |
VPC路由模式剩余Pod网段数不足 | 检查VPC路由模式下,集群剩余可用PodCIDR网段是否少于5个。每个节点消耗一个PodCIDR网段,集群可添加的节点少于5个。Pod网段耗尽后,新添加的节点将无法正常工作。 | CCE提工单扩容。 | |
VPC-ENI模式子网剩余IP数不足 | 检查VPC-ENI模式下,集群内配置的子网剩余IP是否小于10个,每个Pod占用一个IP。当可用IP耗尽后,新创建的Pod分配不到IP,所以无法正常启动。 | 查看CCE集群详情,找到容器网络,添加子网。 | |
节点周CPU使用率过高 | 检查节点过去一周内CPU使用率是否 > 80%。 使用率过高可能导致 CPU 资源抢占,影响业务的正常运行。 |
1.增加节点数量。 2.通过工作负载-容器组或使用kubectl获取Pod YAML,找到resources字段,检查 Pod 资源配额(Request、Limit)。 |
|
节点周内存水位过高 | 检查节点过去一周内平均内存使用率是否 > 80%。 使用率过高可能导致 OOM(Out of Memory),影响业务的正常运行。 |
1.增加节点数量。 2.通过工作负载-容器组或使用kubectl获取Pod YAML,找到resources字段,检查 Pod 资源配额(Request、Limit)。 |
|
节点日CPU使用率过高 | 检查节点过去一天内CPU使用率是否 > 80%。 使用率过高可能导致 CPU 资源抢占,影响业务的正常运行。 |
1.增加节点数量。 2.通过工作负载-容器组或使用kubectl获取Pod YAML,找到resources字段,检查 Pod 资源配额(Request、Limit)。 |
|
节点日内存水位过高 | 检查节点过去一天内平均内存使用率是否 > 80%。 使用率过高可能导致 OOM(Out of Memory),影响业务的正常运行。 |
1.增加节点数量。 2.通过工作负载-容器组或使用kubectl获取Pod YAML,找到resources字段,检查 Pod 资源配额(Request、Limit)。 |
|
集群风险 | 集群Kubernetes版本过低 | 检查集群Kubernetes版本是否即将或者已经超出支持期限。 CCE仅保障支持最近三个Kubernetes双数版本的稳定运行。过期版本的集群存在运行不稳定和集群升级失败的风险。 |
参考 升级集群Kubernetes版本 |
Node数量是否超过规格 | 检查集群Node数量是否超过集群规格限制。 Node数量超过规格限制可能导致控制面资源耗尽和节点组扩缩容失败。 |
CCE 提工单升级集群规格。 | |
集群删除保护是否开启 | 检查集群是否开启删除保护功能。 如未开启,集群有可能被控制台或 API 误删除,导致业务故障。 |
开启集群删除保护。(点击集群详情-基本信息-集群删除保护) | |
审计日志是否开启 | 检查检查审计日志是否开启。 开启集群审计日志方便日常排查问题。 |
开启集群审计。 | |
集群worker node (ready)数量 | 检查集群中 Worker 节点的数量是否少于2 个。 单个节点的集群存在单点失效问题。 |
添加节点。 | |
CoreDNS 组件状态 | 检查 CoreDNS 组件是否为 非 Running 状态。 该组件异常会导致集群内 DNS 解析错误,无法通过 Service 名称进行访问。 |
检查 CoreDNS 组件状态,排除异常原因。 | |
CoreDNS 是否有新版本 | 检查CoreDNS是否有最新版本。 集群内CoreDNS组件版本过低,会导致业务出现DNS解析问题。最新版的CoreDNS提供了更好的稳定性配置和新的功能。 |
升级CoreDNS(集群左侧导航点击运维与管理-组件管理-网络-CoreDNS组件,在组件右下角找到升级按钮)。手动升级具体参考:https://cloud.baidu.com/doc/CCE/s/glto9zt0l | |
CoreDNS 高可用 | 检查 CoreDNS 组件的副本数是否大于2个,且不同副本部署在不同的节点中。 如未达到预期要求,则 CoreDNS 不具备高可用性,存在单点失效风险。当节点宕机或重启的时,CoreDNS 将无法提供服务,影响业务正常运行。 |
检查 CoreDNS 副本状态,保持 2 个以上副本,并将副本打散到不同的节点上。 | |
DNS Service是否正常 | 检查集群DNS服务的Cluster IP是否正常分。 集群DNS服务异常会造成集群功能异常,影响业务。 |
检查CoreDNS Pod运行状态和运行日志,排查DNS问题。 | |
APIServer BLB 6443端口监听配置是否正常 | 检查集群API Server BLB 6443端口监听配置。 若配置异常,将导致集群无法访问。 |
1.前往BLB应用型实例页面找到集群关联的BLB实例,检查BLB实例监听设置。 2.如果找不到BLB实例,请提CCE工单。 |
|
APIServer BLB 实例是否存在 | 检查集群API Server负载均衡实例是否存在。 若集群API Server负载均衡实例不存在,会造成集群不可用。 |
1.前往BLB应用型实例页面检查集群关联的BLB实例是否存在。 2.如果找不到BLB实例,请提CCE工单。 |
|
APIServer BLB 实例状态是否正常 | 检查集群API Server BLB实例状态。 若实例状态异常,将会影响集群可用性。 |
1.前往BLB应用型实例页面找到集群关联的BLB实例,在实例详情里检查BLB实例状态。 2.如果找不到BLB实例,请提CCE工单。 |
|
节点Kubelet组件版本低于控制面版本 | 检查节点Kubelet组件版本是否低于控制面版本。 Kubelet版本低于控制面版本可能导致兼容性问题和安全性问题。 |
升级Kubelet版本。 | |
安全组规则 | 检查节点安全组出/入方向规则是否满足集群访问权限需求。 安全组规则不满足集群访问权限需求可能影响容器网络连通性。 |
前往VPC访问控制-安全组页面,调整安全组规则。 | |
节点是否关联CCE安全组 | 检查集群节点是否关联CCE安全组。 未关联CCE安全组可能影响容器网络连通性。 |
找到目标BCC实例并查看实例详情,在实例安全组界面选择网卡并绑定CCE默认安全组。 | |
APIServer BLB 6443端口目标组配置是否正常 | 检查集群API Server BLB 6443端口对应目标组是否配置正常。 若配置异常,可能导致集群无法访问。 |
1.前往BLB应用型实例页面找到集群关联的BLB实例,检查BLB实例目标组的配置。 2.如果找不到BLB实例,请提CCE工单。 |
|
APIServer Loopback 证书过期 | 检查API Server Loopback证书是否过期。 如果过期,可能影响API Server内部通信。 |
重启APIServer。 | |
组件风险 | 集群组件状态是否正常 | 检查组件管理的组件(已经安装的组件)是否符合预期状态。 组件状态不正常可能无法提供对应服务,影响业务正常运行。 |
检查组件状态。 |
集群组件是否有最新版本 | 检查集群中关键组件是否需要更新版本。 新版本的组件提供了新功能和更好的稳定性。 |
升级组件。 | |
资源状态 | 节点状态 | 检查集群中是否存在 NotReady 的节点。 如果节点状态异常,会导致 Pod 无法被调度到该节点上。 |
查看节点状态,必要时扩容或缩容节点。 |
Workload 副本数 | 检查工作负载的期望副本数和实际副本数是否一致。 如不一致,则不满足高可靠性要求。 |
检查副本数异常工作负载,排除异常原因,更新副本数。 | |
DaemonSets 状态检测(检查 DaemonSets 数量是否和节点数量一致) | 检查 DaemonSets 数量是否和节点数量一致。 如未达到预期副本数,则可能导致相关功能异常。 |
检查副本数异常原因,排除异常原因,更新副本数。 |