Skip to content

Traefik Kubernetes Ingress Provider 文档

Traefik 与 Kubernetes Ingress

Traefik Kubernetes Ingress Provider 是一个 Kubernetes Ingress 控制器,通过支持 Ingress 规范来管理对集群服务的访问。

不支持 Ingress Backend Resource

不支持使用 spec.rules.http.paths.backend.resource 引用后端服务端点。请改用 spec.rules.http.paths.backend.service

配置示例

YAML 格式:

yaml
providers:
  kubernetesIngress: {}

TOML 格式:

toml
[providers.kubernetesIngress]

CLI 格式:

bash
--providers.kubernetesingress=true

Helm Chart Values:

yaml
providers:
  kubernetesIngress:
    enabled: true

配置选项

选项描述默认值
providers.kubernetesIngress.endpointKubernetes API 服务器端点。-
providers.kubernetesIngress.token认证令牌。-
providers.kubernetesIngress.certAuthFilePathCA 证书路径。-
providers.kubernetesIngress.namespaces要监视的命名空间列表。所有命名空间
providers.kubernetesIngress.ingressClass监听具有此 ingressClass 的资源。-
providers.kubernetesIngress.labelSelectorLabel 选择器。-
providers.kubernetesIngress.throttleDuration节流时长。0
providers.kubernetesIngress.allowEmptyServices允许无服务器的服务。false
providers.kubernetesIngress.ingressEndpoint在某些 Kubernetes 服务平台上,Traefik 无法使用 ingress 状态来获取真实的 IP。-

Ingress 资源示例

yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress
  namespace: default
  annotations:
    traefik.ingress.kubernetes.io/router.entrypoints: websecure
    traefik.ingress.kubernetes.io/router.tls: "true"
spec:
  rules:
    - host: example.com
      http:
        paths:
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: my-service
                port:
                  number: 80

适用场景

  • 标准 Kubernetes Ingress:在 Kubernetes 集群中使用标准 Ingress 资源
  • 从其他 Ingress 控制器迁移:标准 Ingress 资源可移植性最好
  • 功能简单的场景:不需要使用 Traefik 特有功能(Middlewares、TraefikService 等)时

与 CRD Provider 的对比

  • Ingress Provider:标准 Kubernetes Ingress 资源,跨厂商兼容
  • CRD Provider:Traefik 自定义资源,功能更丰富(如 Middleware、TraefikService、TCP 路由等)

在生产环境使用 Traefik OSS?

如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。

基于 MIT 协议发布