我们使用在kubernetes中运行的Traefik v2 (称为共享名称空间),为不同的项目/服务提供多个名称空间。我们正在利用IngressRoute光盘和中间件。
我们需要将所有传入的通信量镜像(复制)到一个特定的URL (blah.example.com/newservice),并将其转发到两个不同名称空间中的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我做错了什么?
发布于 2022-08-17 11:22:31
基于文档,因为您的案例类型应该是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: namespace1https://stackoverflow.com/questions/72809952
复制相似问题