【问题标题】:Auto update/pull docker image on GCP Instance Groups with Container-Optimized OS使用 Container-Optimized OS 在 GCP 实例组上自动更新/拉取 docker 映像
【发布时间】:2022-02-26 02:49:29
【问题描述】:

我有一个在 Instance Group 中运行的 GCP 实例,该实例具有 Container-Optimized OS,使用 GCR 上托管的单个映像。

我想将一个新图像拉入 GCP,并使用该新图像刷新实例图像。我正在构建和推送 GitHub Actions,并且可以在 CI 中调用一些 gcloud 命令工作流程。

我想说“嘿,Instance Group,请再次拉取容器镜像”。这样做会很好地保持服务运行。

最好的方法是什么?什么完整的gcloud 命令可以做到这一点?

【问题讨论】:

    标签: google-cloud-platform google-container-os


    【解决方案1】:

    步骤如下:

    1. 准备新的 Docker 映像。
    2. Create an instance template based upon the new Docker image
    3. 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

    【讨论】:

    • 是否需要为每个部署的版本创建一个新模板?这听起来很奇怪,但很有用。
    • @TiagoGouvêa 是的,您需要创建一个新的实例模板。托管实例组是不可变的。如果您使用相同的 docker 图像标签名称,然后进行滚动操作替换,则可以作弊。除了测试,我不推荐这种策略
    【解决方案2】:

    我也有同样的问题。对于将来遇到它的任何人,滚动操作替换的另一个解决方案是使用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
    

    在自动化的情况下,您需要知道实例名称并在注册表中有图像

    【讨论】:

      【解决方案3】:

      为了将来参考,以下命令会更新 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-09
        • 1970-01-01
        • 1970-01-01
        • 2019-11-22
        • 2018-06-20
        • 1970-01-01
        • 2021-03-13
        • 2021-03-27
        相关资源
        最近更新 更多