[英]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.