Traefik

Traefik 是反向代理,Kamal 用于实现零停机部署。

我们在主机的容器中启动实例。

在部署期间

  1. 由于我们应用的标签,我们会启动 Traefik 自动检测到的新容器
  2. Traefik 开始将流量路由到新容器
  3. 我们强制旧容器使其健康检查失败,导致 Traefik 停止向其路由流量
  4. 我们停止旧容器

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:
    ...