Traefik Kubernetes Middleware 文档
Middleware 是 Traefik 中间件的 CRD 实现。
在创建 Middleware 对象之前,你需要将 Traefik Kubernetes CRDs 应用到你的 Kubernetes 集群。
这会注册 Middleware 类型以及其它 Traefik 专属资源。
跨 provider 命名空间
由于 Kubernetes 本身也有命名空间的概念,不应将资源引用中的 Kubernetes 命名空间(指资源的命名空间)与 provider 命名空间 混淆,当中间件定义来自另一个 provider 时。在这种情况下,引用资源时指定命名空间没有意义,会被忽略。此外,当你从 CRD Provider 引用 Middleware 时,由于 Traefik 会在内部自动追加命名空间,你必须在资源名称中追加资源的命名空间。
跨命名空间引用
在下面的示例中,中间件在
foo命名空间中定义,但被另一个命名空间中的 IngressRoute 引用。要启用这种跨命名空间引用,必须在 Traefik Kubernetes CRD provider 配置中启用allowCrossNamespace选项。如果你希望避免此要求,可以将 Middleware 定义和引用放在同一命名空间内。
配置示例
Middleware
yaml
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: stripprefix
namespace: foo
spec:
stripPrefix:
prefixes:
- /stripitIngressRoute
yaml
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: ingressroutebar
spec:
entryPoints:
- web
routes:
- match: Host(`example.com`) && PathPrefix(`/stripit`)
kind: Rule
services:
- name: whoami
port: 80
middlewares:
- name: stripprefix
namespace: foo有关可用中间件的更多信息,请参阅专用的 中间件概览章节。
在生产环境使用 Traefik OSS?
如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。