使用容器优化 OS 的 GCP 实例组上的自动 update/pull docker 图像
Auto update/pull docker image on GCP Instance Groups with Container-Optimized OS
我在 GCP 运行 的 实例组 中有一个实例,使用 Container-Optimized OS GCR 上托管的单个图像。
我想将一个新图像拉到 GCP,并使用该新图像刷新实例图像。我正在构建并推送 GitHub 个操作,并且可以在 CI 工作流程中调用一些 gcloud
命令。
我想说"hey Instance Group, do pull again the container imagens"。保持服务 运行.
这样做会很好
最好的方法是什么?什么完整的 gcloud
命令可以做到这一点?
步骤是:
- 准备新的 Docker 图片。
- Create an instance template based upon the new Docker image.
- Update the MIG(托管实例组)。
创建实例模板:
gcloud compute instance-templates create-with-container [TEMPLATE_NAME] --container-image [DOCKER_IMAGE]
更新 MIG:
gcloud compute instance-groups managed rolling-action start-update [MIG_NAME] --version template=[TEMPLATE_NAME]
您可以阅读更多关于为您的更新配置可用选项的信息here。
我也有同样的问题。对于将来遇到它的任何人,滚动操作替换的另一个解决方案是使用 gcloud beta compute instances update-container
命令。
可以在此处找到文档
https://cloud.google.com/sdk/gcloud/reference/beta/compute/instances/update-container
这是他们的例子:
gcloud beta compute instances update-container instance-1 --zone us-central1-a --container-image=gcr.io/google-containers/busybox
在自动化的情况下,您需要知道一个实例名称并在注册表中有一个映像
为了将来参考,以下命令更新了 GCP 中实例组的所有实例。在这里,我在区域“europe-west3-c”中使用了我的实例组名称“app-backend-instance-group”。请替换这些值。
for i in $(gcloud compute instances list --filter NAME~"app-backend-instance-group" --format="value(NAME)");do gcloud beta compute instances update-container $i --zone europe-west3-c --container-image=gcr.io/deployments-337523/app-backend:latest;done
我在 GCP 运行 的 实例组 中有一个实例,使用 Container-Optimized OS GCR 上托管的单个图像。
我想将一个新图像拉到 GCP,并使用该新图像刷新实例图像。我正在构建并推送 GitHub 个操作,并且可以在 CI 工作流程中调用一些 gcloud
命令。
我想说"hey Instance Group, do pull again the container imagens"。保持服务 运行.
这样做会很好最好的方法是什么?什么完整的 gcloud
命令可以做到这一点?
步骤是:
- 准备新的 Docker 图片。
- Create an instance template based upon the new Docker image.
- Update the MIG(托管实例组)。
创建实例模板:
gcloud compute instance-templates create-with-container [TEMPLATE_NAME] --container-image [DOCKER_IMAGE]
更新 MIG:
gcloud compute instance-groups managed rolling-action start-update [MIG_NAME] --version template=[TEMPLATE_NAME]
您可以阅读更多关于为您的更新配置可用选项的信息here。
我也有同样的问题。对于将来遇到它的任何人,滚动操作替换的另一个解决方案是使用 gcloud beta compute instances update-container
命令。
可以在此处找到文档 https://cloud.google.com/sdk/gcloud/reference/beta/compute/instances/update-container
这是他们的例子:
gcloud beta compute instances update-container instance-1 --zone us-central1-a --container-image=gcr.io/google-containers/busybox
在自动化的情况下,您需要知道一个实例名称并在注册表中有一个映像
为了将来参考,以下命令更新了 GCP 中实例组的所有实例。在这里,我在区域“europe-west3-c”中使用了我的实例组名称“app-backend-instance-group”。请替换这些值。
for i in $(gcloud compute instances list --filter NAME~"app-backend-instance-group" --format="value(NAME)");do gcloud beta compute instances update-container $i --zone europe-west3-c --container-image=gcr.io/deployments-337523/app-backend:latest;done