goc*_*ing 1 google-compute-engine docker google-cloud-platform
我使用以下命令设置我的 CD 以将容器部署到 gce:
gcloud compute instances stop my-awesome-app
gcloud compute instances update my-awesome-app --no-shielded-integrity-monitoring
gcloud beta compute instances update-container my-awesome-app --container-image=docker.io/my-docker-hub-user/my-awesome-app:${IMAGE_TAG}
gcloud compute instances start my-awesome-app
Run Code Online (Sandbox Code Playgroud)
然后实例将停止,替换容器映像并启动。
如果我使用最新图像创建新实例,则一切正常。
如果我使用我的 CD 管道进行部署,该实例总是永远挂起(在收到启动事件后,没有新的日志记录即将到来),从不拉新映像,也从不启动和运行。
任何人都可以告诉我有什么问题吗?
我不会启动和停止我的实例来更新容器。我只是:
gcloud compute instances update-container $instanceName2 --zone $instanceZone --container-image $registry:$BUILD_ID
Run Code Online (Sandbox Code Playgroud)
但是在拉新图像之前,我总是做一个 docker prune 以避免我的磁盘被图像填满:
gcloud compute ssh $instanceName2 --zone $instanceZone --command 'docker system prune -f -a'
Run Code Online (Sandbox Code Playgroud)
对我来说,更好的方法是使用指向我的存储库的模板,并从该模板构建一个托管实例组。通过这种方式,您可以实现零停机部署,并且在 99% 的时间里仍然只有一台机器。细节
小智 2
我希望文档 [1] 对您有所帮助,您可以从中了解更新 Google Cloud 中虚拟机上的容器的步骤。
当您想要更新运行容器的虚拟机时,Compute Engine 会执行以下两个步骤:
请按照文档 [1] 中的 1 到 5 个步骤操作,Compute Engine 会保存更改并自动重新启动实例以进行更新。VM 重新启动后,它会下载新映像并使用更新后的配置启动容器。
| 归档时间: |
|
| 查看次数: |
1561 次 |
| 最近记录: |