Kubernetes 通过声明式的方式管理资源,声明式 API 只需要声明一个期望的状态,系统就会自行调节以满足该状态。但声明式 API 也引入新的问题:无法感知资源当前状态信息,对任务的流程把握不够清晰。
为了保证负载均衡实例配置信息的一致性,整个 Service/Ingress 是作为一个资源整体进行同步的。若 CLB 类型的 Service/Ingress 有任何监听器级别的配置错误问题,会导致整个负载均衡同步失败,并以 Event 的形式反馈问题让用户进行处理。资源同步正确时,也会有该资源正常完成同步的 Event 更新。
Service/Ingress 作为用户直接对外提供服务的资源对象,如果异常将导致服务不可用,影响服务质量。本文提供了常见的 Service/Ingress 报错原因和处理办法。
如何查看 Service/Ingress Event 的报错信息?
通过控制台
通过命令行
登录 容器服务控制台,选择左侧导航栏中的集群。
在集群管理页面中,选择需要更新 YAML 的集群 ID,进入集群基本信息页面。
选择服务与路由 > Service 或 Ingress,进入 Service 或 Ingress 信息页面。
单击某个具体的 Service 或 Ingress 名称。
在事件页签,可查看当前 Service 或 Ingress 的事件信息。如下图所示,可以查看当前 Service/Ingress 的 Event 报错代码。
注意:
资源事件只保存最近 1 小时内发生的事件,请尽快查阅。
Service Event 报错原因和处理办法
错误码 |
错误内容 |
解决方案 |
不修改可能存在的风险 |
E4001 |
TKE_QCSRoles 授权 |
登录访问管理控制台,检查 TKE 服务账户授权,并重新添加授权。详情可参见 服务授权相关角色权限说明。 |
集群维度,组件不能正常工作 |
E4004 |
负载均衡数量超出上限 |
提交工单 申请负载均衡数量 Quota。 |
新增资源没有流量接入 |
E4005 |
负载均衡创建参数错误 |
检查创建参数:service.kubernetes.io/service.extensiveParameters,详情可参见 Service Annotation 说明。 |
新增资源没有流量接入 |
E4008 |
子网 IP 不足 |
三种方案: |
更换其他有足够 IP 的子网新建子网。
更新 Service 注解使用新的子网 ID。
改为使用公网类型的负载均衡。 |
新增资源没有流量接入 |
||
E4009 |
欠费 |
您需要充值账户。 |
新增资源没有流量接入 |
E4011 |
使用已有负载均衡不存在 |
登录负载均衡控制台,找到与当前集群相同的 VPC 下的负载均衡实例,确认负载均衡 ID,使用一个真实有效负载均衡 ID,详情可参见 Service 使用已有 CLB。 |
新增资源没有流量接入 |
E4012 |
使用已有负载均衡是其他 TKE 管理的资源 |
使用已有负载均衡必须是用户自己在负载均衡控制台新建的,详情可参见 Service 使用已有 CLB。 |
新增资源没有流量接入 |
E4013 |
使用已有负载均衡是其他集群使用的资源 |
不支持跨集群使用负载均衡,使用其他负载均衡或者删除该资源。详情可参见 |