簡體   English   中英

如何使用入口設置負載均衡器 nginx controller

[英]How to setup load balancer with ingress nginx controller

我是微服務的新手。 我幾乎沒有要部署為微服務的應用程序。

我需要一個 API 和負載平衡器。 對於 API 網關,我了解到 Ingress Nginx。但我不確定熱設置負載平衡。 但是我可以為 API 網關配置它,如下所示。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  rules:
    - host: example.dev
      http:
        paths:
          - path: /api/users/?(.*)
            backend:
              serviceName: auth-srv
              servicePort: 3000
          - path: /api/orders/?(.*)
            backend:
              serviceName: order-srv
              servicePort: 3000
          - path: /?(.*)
            backend:
              serviceName: client-srv
              servicePort: 3000

我也有一個困惑: 在此處輸入圖像描述

負載均衡器位於 API 網關之前,即 nginx controller,

我將如何配置 Ingress-Nginx 以實現負載平衡?

因為負載均衡器會將請求重定向到 nginx controller

所以, Load balancer -> API Gateway > /api/orders

現在, /api/orders -> order-srv -> pods

顯然,負載均衡器應該決定將請求路由到哪個 pod?

我怎樣才能做到這一點?

嗯,這有點像——

您收到了來自外部世界的請求,該請求已在負載均衡器層的第一級攔截,並且 API 網關應該是您將保留所有 URL 映射的微服務之一 - /api/orders/{orderId}將此帶到您的 API 網關,在該 API 網關中,您可以通過Fully Qualified Domain Name of order service (FQDN):portNumber/{uri}將其重定向到幕后的某個訂單服務

因此,最好通過入口規則將流量簡單地路由到前端和 API 網關,即

- path: /?(.*)將把它帶到客戶端服務或前端

- path: /api/?(.*)這會將其帶到 API 網關服務,該服務將 map 路由到出現在幕后的所有服務

暫無
暫無

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

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