Skip to content

Traefik 启动环境变量

启动环境变量(Boot Environment)

Traefik CLI

要获取 CLI 中所有可用选项的列表:

bash
traefik --help

或使用 Docker:

bash
docker run traefik[:version] --help

例如:

bash
docker run traefik:v3.7 --help

配置环境变量

通用语法

  • 选项被命名为 --<option>
  • 环境变量被命名为 TRAEFIK_<OPTION>(大写)

注意

环境变量 TRAEFIK_<OPTION> 仅在 Traefik 启动时读取一次。

即,运行时修改环境变量不会影响 Traefik 的行为。

转换规则

选项名到环境变量名的转换规则:

  1. 选项名以 TRAEFIK_ 开头
  2. 所有字母转为大写
  3. 连字符 - 替换为下划线 _
  4. . 替换为下划线 _

示例:

CLI 选项环境变量
--entrypoints.web.addressTRAEFIK_ENTRYPOINTS_WEB_ADDRESS
--providers.dockerTRAEFIK_PROVIDERS_DOCKER
--accesslog.levelTRAEFIK_ACCESSLOG_LEVEL
--log.levelTRAEFIK_LOG_LEVEL
--metrics.prometheusTRAEFIK_METRICS_PROMETHEUS

数组参数

对于数组参数,使用逗号分隔:

bash
TRAEFIK_ENTRYPOINTS_WEB_ADDRESS=:80
TRAEFIK_ENTRYPOINTS_WEBSECURE_ADDRESS=:443

Kubernetes 部署

在 Kubernetes 中,建议使用 ConfigMap 或 Secret 挂载环境变量:

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: traefik
spec:
  template:
    spec:
      containers:
        - name: traefik
          image: traefik:v3.7
          envFrom:
            - configMapRef:
                name: traefik-config
            - secretRef:
                name: traefik-secrets

Docker Compose

在 Docker Compose 中:

yaml
services:
  traefik:
    image: traefik:v3.7
    environment:
      - TRAEFIK_LOG_LEVEL=INFO
      - TRAEFIK_PROVIDERS_DOCKER=true
      - TRAEFIK_PROVIDERS_DOCKER_EXPOSEDBYDEFAULT=false
      - TRAEFIK_ENTRYPOINTS_WEB_ADDRESS=:80

完整列表

所有可用的环境变量可以在 Traefik 官方文档 中找到。

适用场景

  • 容器化部署:在 Docker、Kubernetes 中使用环境变量配置
  • 敏感信息:使用环境变量传递敏感信息(如 API 密钥、令牌)
  • 多环境:不同环境使用不同的环境变量
  • 配置中心:从配置中心动态生成环境变量

最佳实践

  1. 使用 ConfigMap/Secret:在 Kubernetes 中使用 ConfigMap 和 Secret
  2. 避免重复:不要在多个位置配置同一选项
  3. 文档化:在代码仓库中记录所有使用的环境变量
  4. 使用前缀:所有 Traefik 环境变量都以 TRAEFIK_ 开头
  5. 敏感信息:使用 Secret 而不是 ConfigMap 存储敏感信息

在生产环境使用 Traefik OSS?

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

基于 MIT 协议发布