簡體   English   中英

使用入口路由流量

[英]Route traffic using ingress

一年前我有一個項目的工作示例,該示例不再有效。

它基本上與此處提到的nginx.ingress.kubernetes.io/rewrite-target屬性的行為變化有關 - https://github.com/kubernetes/ingress-nginx/tree/master/docs/examples/rewrite

我有 3 個應用程序,我想根據條件進行路由。

  • /*到前端集群 IP 服務
  • /api/battleship/*到 Battleship-cluster-ip-service
  • /api/connect4/* to connect-four-cluster-ip-service

一年前工作的工作示例是

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    - http:
        paths:
          - path: /
            backend:
              serviceName: frontend-cluster-ip-service
              servicePort: 3000
          - path: /api/connect4/
            backend:
              serviceName: connect-four-cluster-ip-service
              servicePort: 8080
          - path: /api/battleship/
            backend:
              serviceName: battleship-cluster-ip-service
              servicePort: 8080

但是,這不再起作用,只有路由到/ ,即到 frontend-cluster-ip-service 才起作用。 路由到其他服務器失敗,我得到 404。

然后我才知道nginx.ingress.kubernetes.io/rewrite-target的變化。

我試着跟隨然后

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
    - http:
        paths:
          - path: /
            backend:
              serviceName: frontend-cluster-ip-service
              servicePort: 3000
          - path: /api/connect4(/|$)(.*)
            backend:
              serviceName: connect-four-cluster-ip-service
              servicePort: 8080
          - path: /api/battleship(/|$)(.*)
            backend:
              serviceName: battleship-cluster-ip-service
              servicePort: 8080

現在到connect-four-cluster-ip-servicebattleship-cluster-ip-service的路由正在工作,但frontend-cluster-ip-service不起作用,並且很少有 js 文件加載顯示錯誤:

在此處輸入圖片說明

我在更復雜的重寫時遇到了同樣的問題(它只針對一個不同的路徑)。

為每條路徑制作多個 Ingress 對我有用,但可能不是最干凈的解決方案。

我的入口定義: https : //github.com/FORTH-ICS-INSPIRE/artemis/blob/master/artemis-chart/templates/ingresses.yaml

暫無
暫無

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

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