簡體   English   中英

您可以使用 Traefik 將流量轉發到動態服務嗎?

[英]Can you forward traffic to a dynamic service using Traefik?

下面是一個IngressRoute示例。

我想要這樣的東西,其中域的第一部分將 map 到 Kube.netes 服務,而不必靜態定義服務名稱。

service1.api.test.com -> service1

service2.api.test.com -> service1

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: ingressroute
  namespace: default
spec:
  entryPoints:
    - web
  routes:
  - match: "HostRegexp(`{subdomain:[a-z]+}.api.test.com`)"
    kind: Rule
    services:
    - name: whoami  # can this be dynamic?
      port: 80

不,這是不可能的。 因為即使您能夠匹配主機正則表達式,它也不知道請求需要 go 到哪個服務。

因此,您需要在同一個 ingressRoute 中為不同的服務創建兩個單獨的匹配項

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: ingressroute
  namespace: default
spec:
  entryPoints:
    - web
  routes:
  - match: "HostRegexp(`someservice.yourdomain.com`) && PathPrefix(`/`)"
    kind: Rule
    services:
    - name: whoamiV1
      port: 80
  - match: "HostRegexp(`yourdomain.com`,`{subdomain:[a-zA-Z0-9-]+}.yourdomain.com`) &&PathPrefix(`/api/someservice/`)"
    kind: Rule
    services:
    - name: whoamiV2
      port: 80

有關更多詳細信息,您可以參考文檔

暫無
暫無

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

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