健康检查配置

在运行 Traefik 的角色上,Kamal 将对 docker run 提供一个默认健康检查。对于其他角色,默认情况下不提供健康检查。

如果未提供健康检查且映像未定义健康检查,我们将等待容器达到正在运行状态,然后暂停准备延迟。

默认健康检查是 curl -f http://localhost:<port>/<path>,因此它假定 curl 在容器内可用。

健康检查选项

这些在根或角色配置中的 healthcheck 键下。

healthcheck:

命令

要运行的命令,在运行 Traefik 的角色上默认为 curl -f http://localhost:<port>/<path>

  cmd: "curl -f http://localhost"

时间间隔

Docker 健康检查时间间隔,默认为 1s

  interval: 10s

最大尝试次数

我们轮询容器以查看其是否健康的次数,默认为 7。每次检查以一个不断增加的时间间隔(从 1 秒开始)分隔。

  max_attempts: 3

端口

在健康检查中使用的端口,默认为 3000

  port: "80"

路径

在健康检查中使用的路径,默认为 /up

  path: /health

零停机时间部署的钢丝

钢丝文件用于零停机时间部署。健康检查会增加一项检查,检查文件是否存在。这会允许我们删除该文件,并强制容器变得不健康,导致 Traefik 停止将流量路由到该容器。

Kamal 在此位置挂载一个卷,并在启动容器前创建该文件。您可以将该值设置为 false 以禁用钢丝文件,但这样会失去零停机时间保证。

默认值是 /tmp/kamal-cord

  cord: /cord

日志行

健康检查失败时从容器记录的行数,默认为 50

  log_lines: 100