Traefik 的各种 Providers
Traefik 中的配置发现是通过下面的一些 providers 来实现的。
providers 是现有的一些基础架构组件,可以是编排工具,容器引擎,云提供商或者 key-value 存储都可以。
Traefik 通过查询 providers 的 API 来查找有关路由的相关信息,Traefik 每次检测到更改时,都会动态更新路由。
编排器
虽然每个 provider 都是不同的,但是我们还是可以将这些 provider 大致分为4组:
- 基于标签(每个部署的容器都附件了一组标签)
- 基于键值(每个部署的容器使用相关信息来更新 key-value 存储)
- 基于注解(带有注解的单独对象来定义容器的一些特性)
- 基于文件(一些旧的配置文件)
支持的 Providers
当 Traefik 检测到新服务时,它会创建相应的路由,然后我们可以访问相应的路由。查看 http://localhost:8080/api/rawdata
接口的数据,正常就可以看到 Traefik 已自动检测到新容器并更新了相应的配置。
Kubernetes Ingress
Traefik 的 Kubernetes Ingress provider 是一个 Kubernetes Ingress Controller;也就是说,它通过支持 Ingress 规范来管理对集群服务的访问。