簡體   English   中英

Ingress 在 Kubernetes v1.21.5 中找不到后端服務

[英]Ingress unable to find backend service in Kubernetes v1.21.5

我在 docker 上使用 Kubernetes v1.21.5。 以下是我的入口 YAML 文件

kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  rules:
    - host: triver.dev  
      http:
        paths:
          - path: /api/users/?(.*)
            pathType: Prefix
            backend:
              service:
                name: auth-srv
                port:
                  number: 3000

我正在運行一個 auth srv 映像,以下是它的 YAML 文件

kind: Deployment
metadata:
  name: auth-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: auth
  template:
    metadata:
      labels:
        app: auth
    spec:
      containers:
        - name: auth
          image: triver/auth
          env:
            - name: MONGO_URI
              value: 'mongodb://mongo-srv:27017/auth'
            - name: JWT_KEY
              valueFrom:
                secretKeyRef:
                  name: jwt-secret
                  key: JWT_KEY
---
apiVersion: v1
kind: Service
metadata:
  name: auth-srv
spec:
  selector:
    app: auth
  ports:
    - name: auth
      protocol: TCP
      port: 3000
      targetPort: 3000

但是當我嘗試向我在身份驗證服務中創建的任何路由發送請求時,例如我創建了一個 triver.dev/service/account/signup post express 路由器供用戶注冊。 當我嘗試通過 Postman 向路由發送 post 請求時,它給出了 ECONNRefused 錯誤 (404)。 無法發送請求。 為什么會發生? (我的郵遞員工作正常。這不是郵遞員端的問題。)

我究竟做錯了什么

該應用程序有效,但我無法訪問該路線。 這絕對是入口問題。 有人能幫助我嗎? 這是一個非常重要的項目。

這是因為您沒有在入口中提到主機名,還要確保您的入口控制器正在運行

示例入口

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    - host: hello-world.info
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: web
                port:
                  number: 8080

主持人:hello-world.info

參考: https : //kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/

您也可以結帳: https : //kubernetes.io/docs/concepts/services-networking/ingress/

如果您在 ingress 中設置了默認后端並且主機沒有問題

確保您通過HTTP而不是HTTPS發送請求

nginx.ingress.kubernetes.io/ssl-redirect: "false"

因為您沒有使用證書SSL/TLS所以請嘗試使用HTTP的 URL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM