Overview

特拉菲克的许多朋友

Providers

Traefik中的配置发现是通过提供商实现的.

提供程序是现有的基础结构组件,无论是协调器,容器引擎,云提供程序还是键值存储. 这个想法是Traefik将查询供应商的API,以查找有关路由的相关信息,并且Traefik每次检测到更改时,都会动态更新路由.

部署并忘记是特拉菲克的信条.

Orchestrators

即使每个提供者都不同,我们也可以将它们分为四类:

  • 基于标签(每个部署的容器都有一组附加的标签)
  • 基于键值(每个部署的容器使用相关信息更新键值存储)
  • 基于注释(带有注释的单独对象定义了容器的特征)
  • 基于文件(良好的旧配置文件)

Supported Providers

以下是Traefik中当前受支持的提供商的列表.

Provider Type 配置类型
Docker Orchestrator Label
Kubernetes Orchestrator 自订资源
Consul Catalog Orchestrator Label
Marathon Orchestrator Label
Rancher Orchestrator Label
File Manual TOML / YAML格式

更多供应商

当前版本的Traefik尚不支持所有提供商. 有关更多提供程序,请参见先前版本(v1.7) .

Configuration reload frequency

在某些情况下,某些提供程序可能会突然发生更改,这将产生许多配置更改事件. 如果Traefik将所有这些因素都考虑在内,那将触发比必要甚至有用的配置重载更多的事情.

为了减轻这种情况,可以设置providers.providersThrottleDuration选项. 这是Traefik在重新加载配置之后等待的持续时间,然后才考虑任何新的配置刷新事件. 如果在此持续时间内有任何事件到达,则仅考虑最近的事件,所有先前的事件都将被丢弃.

不能为每个提供程序设置此选项,但限制算法将独立应用于每个提供程序. 默认为2秒.

[providers]
  providers.providersThrottleDuration = 10s
providers:
  providersThrottleDuration: 10s
--providers.providersThrottleDuration=10s

Restrict the Scope of Service Discovery

默认情况下,Traefik将为所有检测到的容器创建路线.

如果要限制Traefik的服务发现范围,即不允许某些容器创建路由,则可以采用两种不同的方式来实现:使用通用配置选项exposedByDefault或基于约束的更精细的粒度机制.

exposedByDefault and traefik.enable

支持该功能的提供商列表:

Constraints

支持约束的提供程序列表: