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

Kubernetes本地部署Ingress Nginx所有路由返回404问题求助

我遇到了和Kubernetes Ingress Nginx Controller is Not Found类似的问题。

我正在本地部署项目,访问后端地址http://posts.com/posts和前端地址http://posts.com均返回404。只有使用地址http://posts.com:32685/posts才能正常访问后端,同端口访问http://posts.com:32685前端仍然失效。我查阅了大量相关资料仍未解决,卡壳很久了 :(

ingress-srv.yaml配置如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-srv
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  rules:
    - host: posts.com
      http:
        paths:
          - path: /posts/create
            pathType: Prefix
            backend:
              service:
                name: blog-posts-clusterip-srv
                port:
                  number: 4000
          - path: /posts
            pathType: Prefix
            backend:
              service:
                name: blog-query-srv
                port:
                  number: 4002
          - path: /posts/?(.*)/comments
            pathType: Prefix
            backend:
              service:
                name: blog-comments-srv
                port:
                  number: 4001
          - path: /?(.*)
            pathType: Prefix
            backend:
              service:
                name: blog-client-srv
                port:
                  number: 3000

posts-depl.yaml配置如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: blog-posts-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: blog-posts
  template:
    metadata:
      labels:
        app: blog-posts
    spec:
      containers: 
        - name: blog-posts
          image: meylisday/blog-posts
          imagePullPolicy: Never
---
apiVersion: v1
kind: Service
metadata:
  name: blog-posts-clusterip-srv
spec:
  selector: 
    app: blog-posts
  ports:
    - name: blog-posts
      protocol: TCP
      port: 4000
      targetPort: 4000

posts-svr.yaml配置如下:

apiVersion: v1
kind: Service
metadata:
  name: blog-posts-srv
spec:
  type: NodePort
  selector:
    app: blog-posts
  ports:
    - name: blog-posts
      protocol: TCP
      port: 4000
      targetPort: 4000

执行k get all命令输出如下:

NAME                                        READY   STATUS    RESTARTS   AGE
    pod/blog-client-depl-64ff878fdf-cbd6d       1/1     Running   0          29m
    pod/blog-comments-depl-c7c998884-c4r8m      1/1     Running   0          41m
    pod/blog-event-bus-depl-7f67777497-4tjbs    1/1     Running   0          40m
    pod/blog-moderation-depl-666bdccc66-pzqkc   1/1     Running   0          38m
    pod/blog-posts-depl-5f66df48c4-dcqgn        1/1     Running   0          37m
    pod/blog-query-depl-658d489d7c-4sds5        1/1     Running   0          36m
    
    NAME                               TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
    service/blog-client-srv            ClusterIP   10.111.45.128    <none>        3000/TCP         17h
    service/blog-comments-srv          ClusterIP   10.98.76.124     <none>        4001/TCP         4d16h
    service/blog-event-bus-srv         ClusterIP   10.101.244.228   <none>        4005/TCP         42d
    service/blog-moderation-srv        ClusterIP   10.109.100.160   <none>        4003/TCP         4d16h
    service/blog-posts-clusterip-srv   ClusterIP   10.98.80.155     <none>        4000/TCP         42d
    service/blog-posts-srv             NodePort    10.104.129.247   <none>        4000:32685/TCP   43d
    service/blog-query-srv             ClusterIP   10.103.8.73      <none>        4002/TCP         4d16h
    service/kubernetes                 ClusterIP   10.96.0.1        <none>        443/TCP          44d
    
    NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/blog-client-depl       1/1     1            1           17h
    deployment.apps/blog-comments-depl     1/1     1            1           4d16h
    deployment.apps/blog-event-bus-depl    1/1     1            1           4d18h
    deployment.apps/blog-moderation-depl   1/1     1            1           4d16h
    deployment.apps/blog-posts-depl        1/1     1            1           5d17h
    deployment.apps/blog-query-depl        1/1     1            1           4d16h

执行k get service -n ingress-nginx命令输出如下:

NAME                                 TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.99.133.41   localhost     80:30383/TCP,443:31513/TCP   20h
ingress-nginx-controller-admission   ClusterIP      10.107.76.88   <none>        443/TCP                      20h

执行kubectl describe ingress ingress-srv命令输出如下:

Name:             ingress-srv
Namespace:        default
Address:          localhost
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
  Host        Path  Backends
  ----        ----  --------
  posts.com   
              /posts/create           blog-posts-clusterip-srv:4000 (10.1.0.183:4000)
              /posts                  blog-query-srv:4002 (10.1.0.184:4002)
              /posts/?(.*)/comments   blog-comments-srv:4001 (10.1.0.180:4001)
              /?(.*)                  blog-client-srv:3000 (10.1.0.185:3000)
Annotations:  kubernetes.io/ingress.class: nginx
              nginx.ingress.kubernetes.io/use-regex: true
Events:
  Type    Reason  Age                   From                      Message
  ----    ------  ----                  ----                      -------
  Normal  Sync    30m (x15 over 5h28m)  nginx-ingress-controller  Scheduled for sync
  Normal  Sync    24m (x4 over 25m)     nginx-ingress-controller  Scheduled for sync

执行k get ingress ingress-srv命令输出如下:

NAME          CLASS    HOSTS       ADDRESS     PORTS   AGE
ingress-srv   <none>   posts.com   localhost   80      20h

完整项目代码可访问https://github.com/meylisday/blog-react-nodejs获取,恳请各位提供解决思路,万分感谢。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:09:04