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

Kubernetes Ingress配置后无法正常转发,如何排查修复?

解决Ingress访问显示NGINX默认页的问题

1. 补全Ingress类配置

你的Ingress资源未指定ingressClassName,而minikube的NGINX Ingress控制器需要明确关联该字段。修改ingress.yaml:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: backend-ingress
spec:
  ingressClassName: nginx  # 添加此行,关联NGINX控制器
  rules:
    - host: test-1.<domain-name>.me
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: backend-service
            port:
              number: 8000

执行更新:

kubectl apply -f ingress.yaml

2. 验证后端服务链路

确保后端Service和Pod正常关联:

  • 检查Service状态:
    kubectl get service backend-service
    
    确认CLUSTER-IP非空,端口8000已暴露。
  • 检查Service的Endpoint:
    kubectl describe service backend-service
    
    查看Endpoints字段,若为空,说明Service的selector和Pod的metadata.labels不匹配,需修正标签一致。
  • 检查Pod状态:
    kubectl get pods
    
    确保目标Pod处于Running状态,无异常重启。

3. 集群内测试后端服务

用临时Pod测试后端服务是否正常响应:

kubectl run -it --rm --image=busybox:1.28 test-pod -- wget -qO- http://backend-service:8000

若返回内容不符合预期,优先排查应用Pod本身的问题。

4. 查看Ingress控制器日志

检查NGINX控制器的转发日志,定位请求处理问题:

kubectl logs -n kube-system -l app.kubernetes.io/name=ingress-nginx

搜索域名test-1.<domain-name>.me相关日志,排查转发错误或配置异常。

5. 确认本地DNS解析

确保本地机器将域名解析到Ingress的ADDRESS(192.168.49.2):

  • 修改本地hosts文件:
    • Windows:C:\Windows\System32\drivers\etc\hosts
    • Linux/macOS:/etc/hosts
      添加一行:
    192.168.49.2 test-1.<domain-name>.me
    
  • 刷新DNS缓存后重新访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:20:25