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

Microk8s MetalLB Ingress访问Headless Service报502 Bad Gateway

问题根因

从Ingress控制器日志可以直接定位核心问题:日志里明确记录转发到后端的请求前缀是http://,也就是Nginx默认用明文HTTP协议访问后端443端口,但后端的ASP.NET Core服务在443端口提供的是HTTPS服务,收到明文HTTP请求后直接主动断开连接,就触发了upstream prematurely closed connection错误,最终返回502。

其他几个不影响连通性但会导致路由不符合预期的配置问题:

  • Ingress路径写了正则捕获规则(/|$)(.*),但pathType设置为Prefix,该类型不支持正则匹配,重写规则不会按预期工作
  • Headless Service本身和Nginx Ingress兼容正常,从Ingress描述信息看,控制器已经正确拉取到后端两个Pod的IP地址,服务发现环节没有问题
  • MetalLB配置正常,已经成功分配外部IP192.168.1.77,流量入口环节没有问题
修复步骤
  1. 给Ingress添加后端协议相关注解
    在Ingress的metadata.annotations段添加以下配置,告诉Nginx Ingress用HTTPS协议连接后端,同时跳过集群内部自签名证书校验:
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/proxy-ssl-verify: "off"
  1. 修正路径匹配类型
    正则匹配的路径需要把pathType从Prefix改成ImplementationSpecific,否则Ingress控制器不会按正则规则解析路径、执行重写。
  2. 修正后的完整Ingress配置参考:
apiVersion: networking.k8s.io/v1
kind: Ingress 
metadata:
  name: ingress 
  namespace: default 
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "false" 
    nginx.ingress.kubernetes.io/rewrite-target: /$2
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    nginx.ingress.kubernetes.io/proxy-ssl-verify: "off"
  labels: 
    app: ingress 
spec:
  ingressClassName: public
  rules:  
  - http:   
      paths:  
      - pathType: ImplementationSpecific
        path: /aspnetcorewebapi(/|$)(.*)
        backend:
          service:
            name: svc-aspnetcorewebapi
            port:
              number: 443
  1. 执行kubectl apply -f ingress.yml应用配置,等待10秒左右控制器完成规则同步后,即可访问http://192.168.1.77/aspnetcorewebapi测试。
修复后异常排查

如果应用配置后仍然无法访问,按以下顺序逐一排查:

  • 进入Ingress控制器Pod直接访问后端Pod IP,验证后端服务可用性:执行kubectl exec -it nginx-ingress-microk8s-controller-9m59x -n ingress -- curl -k https://10.1.207.217:443/,如果能正常返回接口响应,说明后端服务本身无问题
  • 检查后端ASP.NET Core服务的监听配置,确认443端口绑定在0.0.0.0而非127.0.0.1,没有限制来源IP访问
  • 检查集群是否配置了NetworkPolicy,确认ingress命名空间的Pod有权限访问default命名空间下业务Pod的443端口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:00:57