集群巡检项及解决方案

更新时间: 2023-12-08 15:19:31

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

集群巡检项

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

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

检查类型

预警风险

资源配额

ResourceQuotas

VPC内SLB配额紧张

SLB后端服务器配额紧张

SLB可监听数配额紧张

SLB实例数配额检查

资源水位

ResourceLevel

SLB带宽使用率过高

SLB最大连接数过高

SLB新建连接速率过高

SLB QPS过高

集群Pod网段余量紧张

NAT网关连接数过高

vSwitch剩余IP不足

Ingress Controller SLB新建连接速率检查

Ingress Controller SLB QPS检查

版本证书

Versions&Certificates

集群版本过低

CoreDNS版本过低

Ingress版本过低

集群组件更新检查

集群风险

ClusterRisk

Ingress Controller SLB健康检查失败检查

Ingress就绪Pod百分比

Ingress Controller Pod错误日志

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

Nginx Ingress灰度规则

Nginx Ingress使用不正确的Annotation

废弃组件检查

集群API Server连接状态

集群控制面vSwitch剩余IP

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

VPC内SLB配额紧张

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

解决方案:默认情况下一个用户可以保留60个SLB实例。如需超过默认值,请到配额平台提交申请扩容。关于配额限制,参见配额限制

SLB后端服务器配额紧张

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

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

SLB可监听数配额紧张

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

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

SLB实例数配额检查

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

解决方案:默认情况下一个用户可以保留60个SLB实例,如需超过默认值,请到配额平台提交申请扩容。

SLB带宽使用率过高

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

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

SLB最大连接数过高

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

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

SLB新建连接速率过高

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

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

SLB QPS过高

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

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

集群Pod网段余量紧张

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

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

NAT网关连接数过高

异常影响:过去一周内NAT Gateway水位曾达到上限的85%。水位达到上限后,业务无法通过NAT访问公网,可能导致业务异常。

解决方案:请您提升NAT规则。具体操作,请参见普通型公网NAT网关升级至增强型公网NAT网关FAQ

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实例

集群版本过低

异常影响:集群版本即将或者已经超出支持期限。

解决方案:若集群版本即将或者已经超出支持期限,请您尽快升级集群。

CoreDNS版本过低

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

解决方案:为避免业务出现DNS解析问题,您需要尽快升级CoreDNS 。

Ingress版本过低

异常影响:集群内Ingress组件版本过低,会产生Ingress故障,导致业务流量受损。最新版的Ingress提供了更好的稳定性配置和新的功能。

解决方案:为了避免Ingress故障导致业务流量受损,您需要尽快升级Ingress。更多信息,请参见Nginx Ingress FAQ

集群组件更新检查

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

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

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组件,该组件目前已经下线且停止维护,安装或使用该组件可能会影响集群升级和正常使用。请尽快卸载已经废弃的组件。具体操作,请参见管理组件

集群API Server连接状态

异常影响:检查节点能否正常连接集群API Server。

解决方案:请检查集群相关配置。

集群控制面vSwitch剩余IP

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

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

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

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

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