容器服务
配置项 | 说明 |
配置项 | 说明 |
诊断类型 | 配置需要进行诊断的资源类型,本示例中选择 Ingress。 |
URL 地址 | 配置需要进行诊断的 URL 地址。 |
诊断项 | 检查内容 | 修复建议 | 参考文档 |
诊断项 | 检查内容 | 修复建议 | 参考文档 |
Ingress 存在 | 检查是否存在对应的 Ingress 资源。 |
注意 提供的 URL 必须包含完整的域名和路径。例如example.com/demo。否则会导致诊断失败,提示 Ingress 不存在。 | - |
Ingress 资源上存在地址 | 检查 Ingress 资源是否被 Ingress Controller 成功更新了地址。 | 确认 IngressClass 是否存在对应的 Ingress Controller,以及 Controller 是否正常工作。详情可参考其他检查项的检查结果。 | - |
使用 nginx.com/nginx.org 注解 | 检查是否使用了商业版 Ingress 的注解(以nginx.com/nginx.org开头),该配置无法在社区版 Nginx Ingress Controller 上使用。 | 确认当前 Ingress Controller 版本,移除该注解或使用其他注解代替。 | - |
使用 mirror-uri | 检查是否使用了nginx.ingress.kubernetes.io/mirror-uri注解,该注解已在 0.24.0 版本废弃。 | 确认当前 Ingress Controller 版本,移除该注解或使用其他注解代替。 | - |
使用 grpc-backend | 检查是否使用了nginx.ingress.kubernetes.io/grpc-backend注解,该注解已在 0.21.0 版本废弃。 | 确认当前 Ingress Controller 版本,移除该注解或使用其他注解代替。 | - |
使用 base-url-scheme | 检查是否使用了nginx.ingress.kubernetes.io/base-url-scheme注解,该注解已在 0.22.0 版本废弃。 | 确认当前 Ingress Controller 版本,移除该注解或使用其他注解代替。 | - |
使用 session-cookie-hash | 检查是否使用了nginx.ingress.kubernetes.io/session-cookie-hash注解,该注解已在 0.24.0 版本废弃。 | 确认当前 Ingress Controller 版本,移除该注解或使用其他注解代替。 | - |
使用 secure-backends | 检查是否使用了nginx.ingress.kubernetes.io/secure-backends注解,该注解已在 0.21.0 版本废弃。 | 确认当前 Ingress Controller 版本,移除该注解或使用其他注解代替。 | - |
诊断项 | 检查内容 | 修复建议 | 参考文档 |
诊断项 | 检查内容 | 修复建议 | 参考文档 |
Ingress 就绪 Pod 百分比 | 检查 Ingress Deployment 已就绪 Pod 的百分比是否为 100%。如果小于 100% 则表示 Ingress Pod 出现问题没有正常启动或健康检查失败。 | 查看 kube-system 命名空间下的无状态负载 ingress-nginx-controller 的就绪状态,必要时查看事件并根据事件提示处理故障。 | - |
Ingress Service 存在 | 检查 Ingress 启动参数中的 Service 是否存在。该 Service 被删除后可能会导致 Ingress 启动异常。 | 确认 Service 是否被误删除,并修复问题。 | |
Ingress Service 存在事件 | Ingress Service 上是否存在 Warning 或 Error 事件。可能是由于 CLB 配置出现问题。 | 查看 Service 的 Warning 或 Error 事件,根据事件提示处理故障。 | - |
Ingress Service 存在端点 | 检查 Ingress Service 是否正确存在端点。如果不存在,会导致 CLB 无法正常将流量转发到 Ingress Controller 中。 |
| - |
Ingress Service 为 LoadBalancer 类型 | 检查 Ingress 启动参数中指定的 Service 是否为 LoadBalancer 类型。不为该类型时,可能导致 Ingress Controller 无法被外网访问。 | 确认是否需要 LoadBalancer 类型的 Service:
| |
Ingress Service 有外部 IP 地址 | 检查 Service 上有分配的 IP 地址。如果不存在,可能导致无法从公网访问 Ingress。 | 查看 Serivce 事件,检查 Service 状态、CLB 配额等是否正常。 | - |
Leader Pod 存在 | 检查选主是否成功,存在 Leader Pod。如果不存在,可能是由于 Pod 启动时间过短,或者 Ingress Controller 权限配置存在问题。 | - | - |
Ingress Service 外部流量策略 | 检查 Service 的外部流量策略,即外部流量进入集群后的分发方式。 | 外部流量策略默认为Local,可以更改为Cluster。推荐使用Local模式,否则客户端源 IP 可能无法正常保留,导致 CLB 健康检查不准确。 |
诊断项 | 检查内容 | 修复建议 | 参考文档 |
诊断项 | 检查内容 | 修复建议 | 参考文档 |
Ingress Controller CLB 健康检查失败检查 | 检查 CLB 过去 3 天是否存在健康检查失败。可能由于组件负载过高或配置错误引起。 | 检查 Ingress Controller Service 有无异常事件,组件负载是否过高。并根据事件提示处理故障。 | - |
Ingress Controller CLB 实例存在 | 检查 Ingress Controller 的 CLB 是否存在。 | - | |
CLB ID | 检查 Ingress Controller 的 CLB ID 是否存在。 | - | - |
Ingress Controller CLB 当前健康检查状态 | 检查 Ingress 对应 CLB 后端的健康检查状态是否正常。 | 检查 Ingress Controller Service 有无异常事件,组件负载是否过高。 | - |
Ingress Controller CLB 新建连接速率检查 | 检查 CLB 过去 3 天最大新建连接速率是否超过上限的 80%。新建连接速率达到上限后,短时间内无法建立新连接,会导致客户端访问无法访问。 | CLB 新建连接数过高,为避免业务受损,请提升实例规格。 | |
Ingress Controller CLB 最大连接数检查 | 检查 CLB 过去 3 天最大连接数是否超过上限的 80%。连接数达到上限后无法建立新连接,可能会导致客户端无法访问。 | CLB 最大连接数过高,为避免业务受损,请提升实例规格。 | |
TLS 同时配置 Host 与 SecretName | 检查配置 Ingress TLS 规则时,是否同时配置了Host和SecretName字段。 | 同时配置Host与Secret字段,并且确保Host与证书信息对应。 |