【发布时间】:2021-07-08 07:26:51
【问题描述】:
我正在尝试在deploy.yaml 中部署这个 docker GCE 项目,但是每次我更新我的 git 存储库时,服务器都会由于 1.
被删除的原始实例和 2. 新实例尚未完成启动(或至少 Web 应用尚未完成启动)。
我应该使用什么命令或者我应该如何更改它,以便我有一个金丝雀部署,一旦新实例启动就会销毁旧实例(我一次只有一个实例运行)?我没有对实例组进行健康检查,只有负载均衡器。
- name: 'gcr.io/cloud-builders/gcloud'
args: ['compute', 'instance-groups', 'managed', 'rolling-action', 'replace', 'a-group', '--max-surge', '1']
感谢您的帮助!
【问题讨论】:
-
实例组大小是多少?尝试设置 --max-unavailable=0 或在替换操作之前将实例组的大小调整为 1。
-
谢谢@JohnHanley! max-unavailable 参数有效(在实例组上启用了运行状况检查)!出于好奇,
--max-unavailable=0参数是您推荐用于多个实例的吗?或者你会推荐调整大小? -
升级(替换)实例组时需要权衡。滚动更新意味着您的应用程序有新旧版本正在运行。加上可用性问题(处理流量的实例数量)。最后,还有替换所有实例的总时间。在您的情况下,
--max-unavailable=0可能满足您的目标,因为它可以防止没有可用实例的问题。
标签: deployment google-compute-engine gcloud