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=trueHelm Chart Values:
yaml
providers:
kubernetesIngress:
enabled: true配置选项
| 选项 | 描述 | 默认值 |
|---|---|---|
providers.kubernetesIngress.endpoint | Kubernetes API 服务器端点。 | - |
providers.kubernetesIngress.token | 认证令牌。 | - |
providers.kubernetesIngress.certAuthFilePath | CA 证书路径。 | - |
providers.kubernetesIngress.namespaces | 要监视的命名空间列表。 | 所有命名空间 |
providers.kubernetesIngress.ingressClass | 监听具有此 ingressClass 的资源。 | - |
providers.kubernetesIngress.labelSelector | Label 选择器。 | - |
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 的商业支持。