Rancher 1.6中compose健康检查如何配置实现服务不健康时中止部署?
你当前的配置仅定义了服务运行时的健康检查规则,未配置部署/升级阶段的健康校验拦截逻辑,因此新实例即使健康检测失败,仍然会被纳入服务实例列表、完成上线流程。
你可以通过新增upgrade_strategy配置块实现需求,完整配置示例如下:
version: '2' services: service1: scale: 1 # 新增部署升级策略配置 upgrade_strategy: batch_size: 1 start_first: true wait_for_healthcheck: true interval: 2000 healthy_threshold: 2 unhealthy_threshold: 3 response_timeout: 2000 health_check: port: 80 request_line: GET /healthcheck HTTP/1.0 interval: 2000 initializing_timeout: 60000 reinitializing_timeout: 60000 unhealthy_threshold: 3 strategy: recreate healthy_threshold: 2 response_timeout: 2000
参数说明:
upgrade_strategy为Rancher 1.6专属的服务升级流程控制配置块batch_size:单次升级的实例数量,你当前实例数为1设置为1即可start_first:升级时先启动新实例,校验通过后再停止旧实例,避免服务中断wait_for_healthcheck:核心控制参数,开启后部署流程会等待新实例通过健康检查才会继续后续步骤;如果新实例在设定的阈值内检测失败,会直接中止整个部署流程,自动回滚到之前的健康版本- 块内的
interval、healthy_threshold等是升级阶段的健康检查参数,建议和下方运行时健康检查参数保持一致即可
注意事项:
- 若需要首次部署服务(非存量服务升级)时不健康也直接中止、不自动重建,可以将
health_check.strategy的值从recreate改为none - 执行部署命令时不要加
--force-upgrade参数,该参数会跳过健康检查强制升级,导致上述配置失效
内容的提问来源于stack exchange,提问作者jipot
相关产品推荐
相关产品推荐

