Traefik
Traefik 是反向代理,Kamal 用于实现零停机部署。
我们在主机的容器中启动实例。
在部署期间
- 由于我们应用的标签,我们会启动 Traefik 自动检测到的新容器
- Traefik 开始将流量路由到新容器
- 我们强制旧容器使其健康检查失败,导致 Traefik 停止向其路由流量
- 我们停止旧容器
Traefik 设置
Traefik 在根配置中的 traefik
下进行配置。
traefik:
镜像
要使用的 Traefik 镜像,默认为 traefik:v2.10
image: traefik:v2.9
主机端口
用于发布 Traefik 容器的主机端口,默认为 80
host_port: "8080"
禁用发布
为了避免发布 Traefik 容器,将其设为 false
publish: false
标签
应用到 Traefik 容器的其他标签
labels:
traefik.http.routers.catchall.entryPoints: http
traefik.http.routers.catchall.rule: PathPrefix(`/`)
traefik.http.routers.catchall.service: unavailable
traefik.http.routers.catchall.priority: "1"
traefik.http.services.unavailable.loadbalancer.server.port: "0"
参数
传递到 Traefik 容器的其他参数
args:
entryPoints.http.address: ":80"
entryPoints.http.forwardedHeaders.insecure: true
accesslog: true
accesslog.format: json
选项
传递到 docker run
的其他选项
options:
cpus: 2
环境变量
请参阅 环境变量
env:
...