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

Kubernetes Nginx-Ingress规则失效问题求助

问题:Ingress规则无法生效排查

1. Ingress Controller安装信息

  • 安装命令:
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/cloud/deploy.yaml
    
  • Pod运行状态:
    NAME                                        READY   STATUS      RESTARTS   AGE
    ingress-nginx-admission-create-x4mss        0/1     Completed   0          28m
    ingress-nginx-admission-patch-jn9cz         0/1     Completed   1          28m
    ingress-nginx-controller-8574b6d7c9-k4jbj   1/1     Running     0          28m
    
  • Service状态:
    NAME                       TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
    ingress-nginx-controller   LoadBalancer   10.106.134.128   localhost     80:32294/TCP,443:30997/TCP   30m
    

2. 应用Deployment与Service配置

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: app
  name: app
  namespace: namespace
spec:
  replicas: 1
  selector:
    matchLabels:
      app: app
  template:
      labels:
        app: app
    spec:
      containers:
        - image: image
          name: app
          ports:
            - containerPort: 5000
      restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
  name: app-service
  namespace: namespace
spec:
 type: ClusterIP
 selector:
   app: app
  ports:
    - name: app-service
      port: 5000
      targetPort: 5000

3. Ingress资源配置

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress
  namespace: namespace
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx
  rules:
  - host: com.host.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: app-service
            port:
              number: 5000

4. 应用资源状态验证

  • Pod详细状态:
    Name:             app-6b9f7fc47b-sh6nc
    Namespace:        namespace
    Priority:         0
    Service Account:  default
    Node:             docker-desktop/192.168.65.4
    Start Time:       Wed, 30 Nov 2022 16:22:04 -0500
    Labels:           app=app
                      pod-template-hash=6b9f7fc47b
    Status:           Running
    IP:               10.1.0.237
    IPs:
      IP:           10.1.0.237
    Controlled By:  ReplicaSet/app-6b9f7fc47b
    Containers:
      app:
        Container ID:   docker://ba77235d044c24b0f1391c56a2e8653a598a5c130ea4d15ff3b41cd96659fd4a
        Image:          image
        Image ID:       docker://sha256:912cb58ab1c3f2dd628c0b7db4d7f9ac6df4efbe4fcb86979b6a84614db8a675
        Port:           5000/TCP
        Host Port:      0/TCP
        State:          Running
          Started:      Wed, 30 Nov 2022 16:22:05 -0500
        Ready:          True
        Restart Count:  0
        Environment:    <none>
        Mounts:
          /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-8pmjz (ro)
    Conditions:
      Type              Status
      Initialized       True
      Ready             True
      ContainersReady   True
      PodScheduled      True
    Volumes:
      kube-api-access-8pmjz:
        Type:                    Projected (a volume that contains injected data from multiple sources)
        TokenExpirationSeconds:  3607
        ConfigMapName:           kube-root-ca.crt
        ConfigMapOptional:       <nil>
        DownwardAPI:             true
    QoS Class:                   BestEffort
    Node-Selectors:              <none>
    Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
    Events:
      Type    Reason     Age   From               Message
      ----    ------     ----  ----               -------
      Normal  Scheduled  29m   default-scheduler  Successfully assigned namespace/app-6b9f7fc47b-sh6nc to docker-desktop
      Normal  Pulled     29m   kubelet            Container image "image" already present on machine
      Normal  Created    29m   kubelet            Created container app
      Normal  Started    29m   kubelet            Started container app
    
  • Ingress资源状态:
    NAMESPACE           NAME             CLASS   HOSTS               ADDRESS   PORTS   AGE
    namespace          ingress           nginx   com.host.com                   80      7s
    

5. 已执行的排查操作

  • 更换应用监听端口
  • 更换Ingress Controller版本
  • 将应用Service类型修改为LoadBalancer
  • 在本地hosts文件中配置com.host.com指向Ingress Controller的外部IP(localhost)
  • 在Docker Desktop和Minikube两个环境中均进行测试

目前Ingress规则依然无法正常生效,请求协助定位问题并解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:50:24