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 的行为。
转换规则
选项名到环境变量名的转换规则:
- 选项名以
TRAEFIK_开头 - 所有字母转为大写
- 连字符
-替换为下划线_ - 点
.替换为下划线_
示例:
| CLI 选项 | 环境变量 |
|---|---|
--entrypoints.web.address | TRAEFIK_ENTRYPOINTS_WEB_ADDRESS |
--providers.docker | TRAEFIK_PROVIDERS_DOCKER |
--accesslog.level | TRAEFIK_ACCESSLOG_LEVEL |
--log.level | TRAEFIK_LOG_LEVEL |
--metrics.prometheus | TRAEFIK_METRICS_PROMETHEUS |
数组参数
对于数组参数,使用逗号分隔:
bash
TRAEFIK_ENTRYPOINTS_WEB_ADDRESS=:80
TRAEFIK_ENTRYPOINTS_WEBSECURE_ADDRESS=:443Kubernetes 部署
在 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-secretsDocker 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 密钥、令牌)
- 多环境:不同环境使用不同的环境变量
- 配置中心:从配置中心动态生成环境变量
最佳实践
- 使用 ConfigMap/Secret:在 Kubernetes 中使用 ConfigMap 和 Secret
- 避免重复:不要在多个位置配置同一选项
- 文档化:在代码仓库中记录所有使用的环境变量
- 使用前缀:所有 Traefik 环境变量都以
TRAEFIK_开头 - 敏感信息:使用 Secret 而不是 ConfigMap 存储敏感信息
在生产环境使用 Traefik OSS?
如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。