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

如何让Kubernetes Ingress使用HTTP而非HTTPS对外提供服务?

将Docker Desktop内置K8s的Ingress改为HTTP访问的配置步骤

你的问题核心是Docker Desktop自带的Nginx Ingress默认开启了HTTP到HTTPS的强制重定向,只要调整Ingress的注解和确认端口映射即可解决,具体操作如下:

1. 修改Ingress配置,禁用HTTPS重定向

在你的Ingress资源的metadata.annotations中添加nginx.ingress.kubernetes.io/ssl-redirect: "false",这会让Nginx Ingress不再把HTTP请求跳转到HTTPS。修改后的Ingress配置如下:

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

2. 确认Ingress Controller的端口映射

Docker Desktop内置的Nginx Ingress Controller默认已经将集群内的80端口映射到本地的80端口,你可以通过以下命令验证:

kubectl get svc -n ingress-nginx

输出中应该能看到ingress-nginx-controller的PORT(S)列包含80:3XXXX/TCP(3XXXX是随机NodePort,但Docker Desktop会自动把本地80转发到这个端口)。如果没有80端口映射,重启Docker Desktop的Kubernetes组件即可自动恢复。

3. 应用修改并测试

执行以下命令更新Ingress配置:

kubectl apply -f your-ingress-file.yaml

之后直接用http://localhost访问你的Spring Boot应用即可,无需加HTTPS。

额外说明

  • 你的Deployment和Service配置没有问题,Spring Boot的8080端口已经正确暴露和转发。
  • 如果之前配置过TLS证书(比如Ingress里加了tls字段),记得删除对应的TLS配置,否则Ingress还是会优先处理HTTPS请求。

内容的提问来源于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 08:06:52