跳到正文
Træfɪk

Middleware

Middleware 是 Traefik 中间件的 CRD 实现。

创建 Middleware 对象前,需要将 Traefik Kubernetes CRD 应用到 Kubernetes 集群。

这会注册 Middleware 类型及其他 Traefik 专用资源。

跨提供者命名空间

Kubernetes 自身也有命名空间的概念,因此当中间件定义来自另一个提供者时,不要混淆资源的 Kubernetes 命名空间(用于引用中间件)与提供者命名空间。在这种情况下,引用资源时指定 Kubernetes 命名空间没有意义,该值会被忽略。此外,从 CRD 提供者引用 Middleware 时,必须将资源的命名空间附加到资源名称中,因为 Traefik 会在内部自动附加命名空间。

跨命名空间引用

下例在 foo 命名空间中定义中间件,并由另一个命名空间中的 IngressRoute 引用它。要允许这种跨命名空间引用,必须在 Traefik Kubernetes CRD 提供者配置中启用 allowCrossNamespace。如果不希望启用该选项,可以在同一个命名空间中定义和引用 Middleware。

配置示例

apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: stripprefix
  namespace: foo

spec:
  stripPrefix:
    prefixes:
      - /stripit
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

有关可用中间件的更多信息,请参阅中间件概述。


版权所有 © 头文件软件工作室

文档由 HeadFile Studio 翻译。

Traefik v3.7 中文快照 · 原文版权归 Traefik Labs 及贡献者所有 · MIT 许可证