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

Docker Desktop上无法通过Ingress访问Kubernetes应用,求排查

问题排查与修复方案

核心问题1:重复Service导致资源冲突

你定义了两个同名的Service(angular-app-product),Kubernetes中同名资源会被后创建的覆盖,因此原本的NodePort Service直接被LoadBalancer Service替换,端口映射逻辑混乱——完全没必要同时定义两个类型重复的Service。

核心问题2:域名到应用的路由缺失

你把hello-test.internal指向127.0.0.1,但没有任何组件将这个域名的请求转发到你的应用Service上。在Kubernetes环境中,要实现域名访问应用,必须配置Ingress来完成路由映射。

具体修复步骤

1. 删除重复的Service配置

保留其中一个Service即可,比如保留LoadBalancer类型的:

apiVersion: v1
kind: Service
metadata:
  name: angular-app-product
spec:
  selector:
    app: angular-app-product
  ports:
  - name: http
    port: 80
    targetPort: 80
  type: LoadBalancer

如果习惯用NodePort,保留对应的配置也可以,按需选择。

2. 添加Ingress配置

创建Ingress资源,将hello-test.internal域名的请求转发到你的Service:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: hello-test-ingress
spec:
  rules:
  - host: hello-test.internal
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: angular-app-product
            port:
              number: 80

注意:需要先在Docker Desktop的Kubernetes设置里开启Ingress Controller(默认可能未启用)。

3. 应用配置并验证

  • 执行命令更新配置:kubectl apply -f 你的配置文件.yaml
  • 查看Ingress状态:kubectl get ingress,确认ADDRESS字段有值(一般是localhost或Docker分配的IP)
  • 再次访问http://hello-test.internal,即可正常访问应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:33:36