Coolify 滚动更新
滚动更新使 Coolify 能够通过启动新容器并优雅地停止当前运行的容器,从而无缝更新您的应用。
这种方法将停机时间降至最低,并确保在更新期间服务保持可用。
滚动更新的工作原理
当启动新更新时,Coolify 会启动一个新的容器实例,同时现有容器继续运行。
一旦确认新容器健康,旧容器将被停止。此过程称为滚动更新,有助于减少服务中断。
滚动更新的条件
要使滚动更新正常运行,必须满足以下条件:
-
健康检查配置: 必须配置并通过有效的健康检查。
- 健康检查确保在终止旧容器之前,新容器已完全准备好处理流量。
- 如果没有适当的健康检查,滚动更新过程无法验证容器的就绪状态,可能导致失败。
-
默认容器命名: 滚动更新需要使用默认的容器命名约定。
- 如果设置了自定义容器名称,更新过程可能无法正确管理容器实例,从而导致滚动更新无法按预期执行。
-
不应使用 Docker Compose: 滚动更新不支持基于 Docker Compose 的部署。
- Docker Compose 部署使用静态容器名称,更新过程可能无法正确管理容器实例,从而导致滚动更新无法按预期执行。
-
端口映射: 如果端口映射到宿主机,新容器在更新过程中无法绑定同一端口。
- 当旧容器仍在运行时尝试将流量路由到新容器时,这可能会导致冲突,从而阻止滚动更新成功完成。
配置健康检查
为确保滚动更新成功,请验证您的应用是否包含健康检查端点。
当容器正常运行时,该端点应返回成功响应(例如 HTTP 200)。有关为您的应用配置健康检查的更多详细信息,请参阅我们的健康检查指南.
滚动更新故障排除
如果您在滚动更新中遇到问题,请考虑执行以下步骤:
-
验证健康检查配置: 确保您的健康检查端点已正确实现并返回有效响应。失败或配置不当的健康检查将中止更新过程。
-
检查容器命名: 确认您正在使用默认的容器命名约定。如果设置了自定义容器名称,滚动更新将无法按预期工作。
-
检查日志: 查看
coolify-proxy容器或您的应用容器日志,查找与更新过程相关的任何错误消息。这可能会提供有关是什么阻止滚动更新成功完成的额外见解。
