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

无法访问 Ingress Controller 自身,该如何解决?

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

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

问题现象

针对使用 Flannel 网络模型的集群,在 Ingress Pod 中通过域名、CLB IP、Cluster IP 访问 Ingress Controller 自身时,出现请求不成功的情况。

原因分析

目前,Flannel 默认配置允许回环访问。

解决方案

将 Flannel 中的hairpinMode配置恢复成默认配置。

  1. 通过 kubectl 登录集群,并执行以下命令,编辑 Flannel 配置文件。
kubectl edit cm kube-flannel-cfg -n kube-flannel
  1. 在返回结果cni-conf.json中查看hairpinMode配置是否被修改(默认为 true),示例如下。
cni-conf.json: |
    {
      "name": "cbr0",
      "cniVersion": "0.3.1",
      "plugins": [
        {
          "type": "flannel",
          "delegate": {
            "hairpinMode": true,
            "isDefaultGateway": true
          }
        },
        {
          "type": "portmap",
          "capabilities": {
            "portMappings": true
          }
        }
      ]
    }
  1. hairpinMode配置被修改,需要恢复成true。配置完成后,删除当前 Flannel Pod 并等待重建。