集群巡检项及解决方案

容器智能运维平台提供定时巡检功能。您可以设置巡检的定时规则,定期检查集群存在的风险预警。本文介绍集群巡检的常见风险预警以及解决方案。

集群巡检项

说明
  • 关于如何使用集群巡检功能,请参见使用集群巡检

  • 根据集群配置,具体巡检项可能稍有不同。实际结果请以检查报告结果为准。

检查类型

预警风险

资源配额

ResourceQuotas

SLB后端服务器配额紧张

SLB可监听数配额紧张

SLB实例数配额紧张

资源水位

ResourceLevel

SLB带宽使用率过高

SLB最大连接数过高

SLB新建连接速率过高

SLB QPS过高

集群Pod网段余量紧张

vSwitch剩余IP不足

Ingress Controller SLB新建连接速率检查

Ingress Controller SLB QPS检查

集群控制面vSwitch剩余IP

版本与证书

Versions&Certificates

集群版本过低

CoreDNS版本过低

集群组件更新检查

集群风险

ClusterRisk

CoreDNS ConfigMap配置

CoreDNS部署位置

CoreDNS节点高可用

DNS服务后端的服务端点

DNS服务的ClusterIP检查

集群NAT网关状态

集群NAT网关并发超规格丢弃速率

NodeLocal DNSCache DNS配置自动注入

API Server SLB访问控制配置

API Server SLB实例后端状态

API Server SLB 6443端口监听配置

API Server SLB实例

API Server SLB实例状态

Ingress Controller SLB健康检查失败检查

Ingress就绪Pod百分比

Ingress Controller Pod错误日志

Nginx Ingress中rewrite-target配合捕获组使用

Nginx Ingress灰度规则

Nginx Ingress使用正确的Annotation

废弃组件检查

检查是否存在多个Service复用同一个SLB同一个端口

SLB后端服务器配额紧张

异常影响:检查SLB实例可以挂载后端服务器配额。SLB后端可挂载的ECS数量有限制。当LoadBalancer类型的Service规模较大时,Pod分布在多个ECS上,当ECS数量超过SLB后端可挂载的ECS数量限制时,超出部分的ECS将无法配置到SLB上。

解决方案:默认情况下一个SLB实例可以挂载200个后端服务器。如需超过默认值,请到配额平台提交申请扩容。关于配额限制,参见配额限制。关于负载均衡注意事项,请参见Service的负载均衡配置注意事项

SLB可监听数配额紧张

异常影响:检查SLB实例监听数。SLB可配置的监听数量有限,每个LoadBalancer类型的Service,其监听的每个端口对应一个SLB的监听。当端口数达到SLB监听上限时,超出部分的端口将无法正常提供服务。

解决方案:默认情况下一个SLB实例可以添加50个监听。如需超过默认值,请到配额平台提交申请扩容。关于配额限制,参见配额限制。关于负载均衡注意事项,请参见Service的负载均衡配置注意事项

SLB实例数配额紧张

异常影响:检查SLB实例剩余配额是否小于5个。每个LoadBalancer类型的Kubernetes Service创建一个SLB实例,SLB配额耗尽后,新创建的LoadBalancer类型Service无法正常工作。

解决方案:默认情况下一个用户可以保留60个SLB实例,如需超过默认值,请到配额平台提交申请扩容。关于负载均衡注意事项,请参见Service的负载均衡配置注意事项

SLB带宽使用率过高

异常影响:检查SLB过去三天网络流出带宽的最大值是否达到上限的80%以上。当带宽达到上限后,可能产生SLB上的丢包,导致请求抖动、延迟。

解决方案:若SLB实例网络带宽使用率过高,您需要提升实例规格。具体操作,请参见使用指定的SLB实例

SLB最大连接数过高

异常影响:检查SLB过去三天最大连接数是否达到上限的80%以上。当连接数达到上限后,短时间内无法建立新连接,导致客户端无法访问。

解决方案:若过去三天内SLB实例连接数过高,达到最大连接数的80%。超过SLB连接数最大值会导致客户端无法访问。为避免业务受损,您需要提升实例规格。具体操作,请参见使用指定的SLB实例

SLB新建连接速率过高

异常影响:检查SLB过去三天最大新建连接速率是否达到上限的80%以上。当新建连接速率达到上限后,短时间内无法建立新连接,导致客户端无法访问。

解决方案:若过去三天内SLB实例新建连接速率过高,达到每秒最大新建连接数的80%。新建连接数达到SLB每秒最大新建连接数的最大值会导致客户端无法访问。为避免业务受损,您需要提升实例规格。具体操作,请参见使用指定的SLB实例

SLB QPS过高

异常影响:检查SLB过去三天最大QPS是否达到上限的80%以上。当QPS达到上限后,可能导致客户端无法访问。

解决方案:若过去三天内SLB实例QPS过高,达到最大QPS的80%。超过SLB QPS最大值会导致客户端无法访问。为避免业务受损,您需要提升实例规格。具体操作,请参见使用指定的SLB实例

集群Pod网段余量紧张

异常影响:检查Flannel集群剩余可用PodCIDR网段是否少于5个。每个节点消耗一个PodCIDR网段,集群可添加的节点少于5个。Pod网段耗尽后,新添加的节点将无法正常工作。

解决方案:请您提交工单处理。

vSwitch剩余IP不足

异常影响:检查Terway集群内配置的vSwitch剩余IP是否小于10个,每个Pod占用一个IP。当可用IP耗尽后,新创建的Pod分配不到IP,所以无法正常启动。

解决方案:您需要尽快扩容或更换vSwitch。具体操作,请参见容器服务Kubernetes的Terway网络场景中交换机的IP资源不足

Ingress Controller SLB新建连接速率检查

异常影响:检查SLB过去三天最大新建连接速率是否达到上限的80%。新建连接速率达到上限后,短时间内无法建立新连接,可能导致客户端无法访问。

解决方案:SLB实例新建连接速率过高,为避免业务受损,您需要提升实例规格。具体操作,请参见使用指定的SLB实例

Ingress Controller SLB QPS检查

异常影响:检查SLB过去三天最大QPS是否达到上限的80%。QPS达到上限后,可能导致客户端无法访问。

解决方案:SLB实例QPS过高,为避免业务受损,您需要提升实例规格。具体操作,请参见使用指定的SLB实例

集群控制面vSwitch剩余IP

异常影响:集群控制面的vSwitch剩余IP小于10个,新创建的Pod可能将分配不到IP无法正常启动。

解决方案:提交工单处理。

集群版本过低

异常影响:集群版本即将或者已经超出支持期限。ACK仅保障支持最近三个Kubernetes版本的稳定运行。过期版本的集群存在运行不稳定和集群升级失败的风险。关于ACK版本机制和Kubernetes版本发布记录,请参见Kubernetes版本概览及机制

解决方案:若集群版本即将或者已经超出支持期限,请您尽快升级集群。具体操作,请参见升级集群和独立升级集群控制面和节点池

CoreDNS版本过低

异常影响:集群内CoreDNS组件版本过低,会导致业务出现DNS解析问题。最新版的CoreDNS提供了更好的稳定性配置和新的功能。

解决方案:为避免业务出现DNS解析问题,您需要尽快升级CoreDNS 。具体操作,请参见CoreDNS手动升级

集群组件更新检查

异常影响:检查集群中关键组件是否需要更新版本。

解决方案:您的集群中部分组件需要尽快更新版本,您可以在容器服务控制台升级相关组件。

CoreDNS ConfigMap配置

异常影响:检查CoreDNS ConfigMap配置是否异常,异常配置将会影响组件正常运行。

解决方案:请检查CoreDNS ConfigMap配置。更多信息,请参见DNS最佳实践

CoreDNS部署位置

异常影响:检查CoreDNS实例是否部署在Master节点上,CoreDNS运行在Master节点上可能导致Master带宽过高,影响控制面正常运行。

解决方案:请将CoreDNS副本部署到Worker节点上。具体操作,请参见DNS解析异常问题排查

CoreDNS节点高可用

异常影响:检查CoreDNS实例部署形态,CoreDNS多个实例部署在同一节点上存在单点故障的风险,当节点出现故障、重启时CoreDNS将无法提供服务,影响业务正常运行。

解决方案:请将CoreDNS副本部署到不同的节点上。具体操作,请参见DNS解析异常问题排查

DNS服务后端的服务端点

异常影响:检查集群DNS服务关联的后端DNS服务器数,如果为0,DNS服务将无法使用。

解决方案:检查CoreDNS Pod运行状态和运行日志,排查DNS问题。具体操作,请参见DNS解析异常问题排查

DNS服务的ClusterIP检查

异常影响:检查集群DNS服务的Cluster IP是否正常分配,集群DNS服务异常会造成集群功能异常,影响业务。

解决方案:检查CoreDNS Pod运行状态和运行日志,排查DNS问题。具体操作,请参见DNS解析异常问题排查

集群NAT网关状态

异常影响:检查集群NAT网关状态。

解决方案:请登录NAT网关管理控制台检查集群的NAT网关是否处于欠费锁定状态,及时处理。

集群NAT网关并发超规格丢弃速率

异常影响:检查NAT网关会话并发超规格丢弃速率是否过高。

解决方案:若集群NAT网关会话并发超规格丢弃速率过高,请尝试通过升级NAT网关的规格解决,具体操作,请参见普通型公网NAT网关升级至增强型公网NAT网关FAQ

NodeLocal DNSCache DNS配置自动注入

异常影响:检查NodeLocal DNSCache DNS配置自动注入是否开启。NodeLocal DNSCache只会在注入DNS配置后生效,如果没有开启自动注入,DNS缓存能力可能处于尚未生效状态。

解决方案:开启NodeLocal DNSCache DNS配置自动注入。具体操作,请参见使用NodeLocal DNSCache

API Server SLB访问控制配置

异常影响:检查集群API Server SLB 访问控制配置是否正确。即集群API Server负载均衡访问控制是否放开集群VPC网段及100.104.0.0/16,访问控制配置错误会造成集群不可用。

解决方案:请检查API Server SLB访问控制并及时调整。

API Server SLB实例后端状态

异常影响:检查ACK专有集群的API Server SLB实例后端状态。ACK专有集群中API Server负载均衡实例后端需包含Master节点机器,否则会造成流量转发异常。

解决方案:请调整负载均衡实例转发配置,将其加入Master节点机器。

API Server SLB 6443端口监听配置

异常影响:检查集群API Server SLB 6443端口监听配置。若配置异常,将导致集群无法访问。

解决方案:集群API Server负载均衡实例6443端口监听配置异常,请调整负载均衡实例监听设置,恢复至集群创建时状态。

API Server SLB实例

异常影响:检查集群API Server负载均衡实例是否存在。若集群API Server负载均衡实例不存在,会造成集群不可用。

解决方案:请检查负载均衡实例是否存在,如果确认误删除,请提交工单处理。

API Server SLB实例状态

异常影响:检查集群API Server SLB实例状态。若实例状态异常,将会影响集群可用性。

解决方案:请检查负载均衡实例状态是否正常。

Ingress Controller SLB健康检查失败检查

异常影响:检查SLB过去三天是否存在健康检查失败的情况,可能由于组件负载过高或配置错误引起。

解决方案:若过去三天内存在健康检查失败。为避免业务受损,请检查Ingress Controller Service有无异常事件,组件负载是否过高。关于异常问题排查,请参见Nginx Ingress异常问题排查

Ingress就绪Pod百分比

异常影响:检查Ingress Deployment已就绪的Pod百分比,小于100表明Ingress Pod可能出现问题,无法正常启动或健康检查失败。

解决方案:通过Pod诊断或Ingress异常排查文档查找问题Pod。关于异常问题排查,请参见Nginx Ingress异常问题排查

Ingress Controller Pod错误日志

异常影响:检查Ingress Controller Pod中是否存在错误日志。出现错误日志,表示Ingress Controller可能工作异常。

解决方案:根据错误日志,查找原因并修复问题。关于异常问题排查,请参见Nginx Ingress异常问题排查

Nginx Ingress中rewrite-target配合捕获组使用

异常影响:检查使用了rewrite-target的Nginx Ingress规则是否与捕获组一起使用。在0.22.0及以上的Ingress Controller版本中使用rewrite-target时,需要显式指定捕获组,否则会造成流量转发异常。

解决方案:请重新配置规则。具体操作,请参见Nginx Ingress高级用法

Nginx Ingress灰度规则

异常影响:检查service-match和service-weight是否指定不超过2个的目标服务。service-match和service-weight目前仅支持2个服务间的流量分发,配置大于2个将导致多出的配置被忽略,出现流量不符合预期的情况。

解决方案:请调整规则中服务的数量。

Nginx Ingress使用正确的Annotation

异常影响:检查社区版Nginx Ingress Controller是否使用nginx.ingress.kubernetes.io开头的Annotation,而不是以nginx.com/nginx.org开头。使用nginx.com/nginx.org开头的Annotation,将无法被Nginx Ingress Controller识别,造成配置无效或不符合预期的情况。

解决方案:请选择所需功能的Annotation使用。关于Annotation更多信息,请参见阿里云官方文档或社区文档

废弃组件检查

异常影响:检查集群是否安装使用已经废弃的组件。

解决方案:请检查您的集群中是否安装或正在使用alicloud-application-controller组件,该组件目前已经下线且停止维护,安装或使用该组件可能会影响集群升级和正常使用。请尽快卸载已经废弃的组件。具体操作,请参见管理组件

检查是否存在多个Service复用同一个SLB同一个端口

异常影响:如果多个Service复用同一个SLB的同一个端口,会导致服务异常。

解决方案:请修改或删除冲突的Service,确保多个Service复用同一个SLB时使用不同的端口。