You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地Kubernetes Ingress无法暴露服务至本地机器的问题排查

问题原因及解决方案

核心原因

出现HTTP访问Ingress失败、HTTPS正常的情况,大概率是Nginx Ingress Controller默认开启了HTTP到HTTPS的强制重定向,具体细节如下:

  • 绝大多数默认安装的Nginx Ingress Controller会启用force-ssl-redirect配置(通过全局ConfigMap或默认规则),当客户端发起HTTP请求时,控制器会返回301/302重定向响应,引导请求转向HTTPS。如果你的访问工具(比如未开启自动跳转的浏览器、不带跟随重定向参数的curl)没有处理这个重定向,就会表现为HTTP访问"失败",但直接用HTTPS访问就能正常连接。
  • 你的Ingress资源中没有显式禁用该重定向规则,所以默认的强制HTTPS逻辑会生效。

验证步骤

可以通过以下操作确认:

  • 执行curl -v http://<你的Ingress访问IP>/,查看响应头是否包含Location: https://<你的Ingress访问IP>/的重定向信息。
  • 查看Ingress Controller的全局ConfigMap(通常名为nginx-ingress-controller),检查是否存在force-ssl-redirect: "true"的配置项。

解决方法

如果需要保留HTTP访问能力,只需在Ingress资源的metadata.annotations中添加禁用重定向的注解即可:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
    name: my-ingress
    annotations:
        nginx.ingress.kubernetes.io/ssl-redirect: "false" # 禁用HTTP到HTTPS的强制重定向
spec:
    ingressClassName: nginx
    rules:
    - http:
        paths:
        - path: /
          pathType: Prefix
          backend:
              service:
                  name: my-service
                  port:
                      number: 8080

如果是全局需要禁用该规则,可以修改Ingress Controller的ConfigMap,将force-ssl-redirect的值改为"false",但这种方式会影响集群内所有Ingress资源,需谨慎操作。

内容的提问来源于stack exchange,提问作者askwer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 20:09:29