概述¶
Traefik 的各种 Providers
Traefik 中的配置发现是通过下面的一些 providers 来实现的。providers 是现有的一些基础架构组件,可以是编排工具,容器引擎,云提供商或者 key-value 存储都可以。
Traefik 通过查询 providers 的 API 来查找有关路由的相关信息,Traefik 每次检测到更改时,都会动态更新路由。
编排器¶
虽然每个 provider 都是不同的,但是我们还是可以将这些 provider 大致分为4组:
- 基于标签(每个部署的容器都附件了一组标签)
- 基于键值(每个部署的容器使用相关信息来更新 key-value 存储)
- 基于注解(带有注解的单独对象来定义容器的一些特性)
- 基于文件(一些旧的配置文件)
支持的 Providers¶
下面列出的是现在 Traefik 支持的一些 providers。
Provider | 类型 | 配置类型 |
---|---|---|
Docker | 编排器 | 标签 |
Kubernetes | 编排器 | 自定义资源 |
Marathon | 编排器 | 标签 |
Rancher | 编排器 | 标签 |
File | 手动 | TOML/YAML 文件格式 |
更多 Providers
当前版本的 Traefik 还不支持所有的 provider。可以查看 上一版本(v1.7) 了解更大 providers 的信息。
限制服务发现的范围¶
默认情况下,Traefik 将会为所有检测到的容器创建路由。如果你想限制 Traefik 的服务发现范围,也就是想要禁止某些容器的路由创建,我们可以通过两种不同的方式来进行操作:
- 使用通用的配置选项
exposedByDefault
- 使用基于约束的更精细的粒度控制
exposedByDefault
和 traefik.enable
¶
支持该功能的 providers 列表:
- Docker
- Rancher
- Marathon
约束¶
支持约束的 providers 列表:
- Docker
- Rancher
- Marathon
- Kubernetes CRD
- Kubernetes Ingress