健康检查配置
在运行 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