You need to enable JavaScript to run this app.
导航

已经添加了 Ingress,但并没有生效,该如何排查?

最近更新时间2023.11.21 19:51:59

首次发布时间2023.11.21 19:51:59

问题现象

已经添加或修改了 Ingress 规则,但规则并没有生效。

原因分析

  • Ingress 配置出现错误,导致新 Ingress 规则无法被正确加载。

  • Ingress 资源配置错误,与预期配置不相符。

  • Ingress Controller 的权限出现问题,导致无法正常监视 Ingress 资源变动。

  • 旧 Ingress 使用 server-alias 配置域名,此配置与新 Ingress 冲突,导致规则被忽略。

解决方案

  • 检查 Ingress 配置,确认是否存在 Ingress 配置错误/正确但不符合预期。

  • 进入 Controller Pod 容器,查看 nginx.conf 文件中是否已添加了规则。

  • 检查 ClusterRole、ClusterRoleBinding、Role、RoleBinding、ServiceAccount 等关联资源,默认名称为 ingress-nginx。

  • 若旧 Ingress 使用 server-alias 配置域名,此配置与新 Ingress 冲突,导致规则被忽。可参考以下步骤处理:

    • 针对非rewrite-target,且路径中使用了正则表达式的情况,确认 Annotation 中配置了nginx.ingress.kubernetes.io/use-regex: "true"

    • 检查 PathType 是否与预期相符(ImplementationSpecific默认与Prefix作用相同)。ImplementationSpecificPrefix详细介绍参见:Basic Configuration