[英]Mirror traffic using Traefik 2
我們正在使用在 kubernetes 中運行的 Traefik v2 共享命名空間(稱為 shared),為不同的項目/服務提供多個命名空間。 我們正在使用 IngressRoute CRD 和中間件。
我們需要將所有傳入流量鏡像(復制)到特定的 URL (blah.example.com/newservice) 並將其轉發到 2 個不同命名空間中的 2 個后端服務。 因為它們在 2 個命名空間之間分開,所以它們以相同的名稱運行,具有相同的端口。
我看過以下鏈接,但似乎不明白: https://doc.traefik.io/traefik/v2.3/routing/providers/kubernetes-crd/#mirroring
這是我的配置:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
annotations:
kubernetes.io/ingress.class: traefik
name: shared-ingressroute
namespace: shared
spec:
entryPoints: []
routes:
- kind: Rule
match: Host(`blah.example.com`) && PathPrefix(`/newservice/`)
middlewares:
- name: shared-middleware-testing-middleware
namespace: shared
priority: 0
services:
- kind: Service
name: customer-mirror
namespace: namespace1
port: TraefikService
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: shared-middleware-testing-middleware
namespace: shared
spec:
stripPrefix:
prefixes:
- /newservice/
---
apiVersion: traefik.containo.us/v1alpha1
kind: TraefikService
metadata:
name: customer-mirror
namespace: namespace1
spec:
mirroring:
name: newservice
port: 8011
namespace: namespace1
mirrors:
- name: newservice
port: 8011
percent: 100
namespace: namespace2
我究竟做錯了什么?
基於docs ,對於您的案例類型應該是TraefikService
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
annotations:
kubernetes.io/ingress.class: traefik
name: shared-ingressroute
namespace: shared
spec:
entryPoints: []
routes:
- kind: Rule
match: Host(`blah.example.com`) && PathPrefix(`/newservice/`)
middlewares:
- name: shared-middleware-testing-middleware
namespace: shared
services:
- kind: TraefikService
name: customer-mirror
namespace: namespace1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.