使用 Cloud Deployment Manager 定义 Container-Optimized OS 实例模板

Use Cloud Deployment Manager to define a Container-Optimized OS instance template

我使用 google deployment manager 创建:

这很有用(我在创建这样的实例模板时使用了这个 tutorial). However, I fail to define an instance template that runs a docker container (fwiw: the google cloud web console looks as that)。

我尝试了几件事(有些可能是愚蠢的):

  1. 查看工作实例模板的描述并尝试重现它。

    • 使用命令gcloud compute instance-templates describe <working-template>获取工作实例模板的扩展定义
    • 定义与工作实例模板匹配的实例模板
    • 进行测试部署
    • SSH 进入生成的实例,确认目标镜像没有被拉取
  2. 不要使用Container-Optimized OS (aka. copy this example

    • yaml 中用我的 gcr.io 托管的 docker 图片替换 spec containers image
    • 进行测试部署。
    • SSH 进入生成的实例,确认目标镜像未被拉取。
  3. 确认之前的方法有问题:获取gcloudconsole util command,复制工作实例模板。更新部署,以便实例组使用此手动复制的实例模板。

    • 进行测试部署。
    • SSH 进入生成的实例,确认目标镜像未被拉取。
  4. 确认 google 部署管理器没有乱来。

    • 更新部署以便实例组使用工作实例模板。
    • 进行测试部署。
    • SSH 进入生成的实例,确认所有工作都按预期进行。

我是不是走错方向了?

为了使其与 Container-Optimized OS 一起使用,我定义了一个包含元数据 "user-data" 的模板,其中包含一个 "cloud-config" 文件,该文件创建一个运行预期容器的 systemd 服务。

我在 gist 上发布了结果,您必须 (a) 在 deploy.yaml 文件中指定 dockerImage,并且 (b) 如果需要特殊范围更新将它们与您的 developer.gserviceaccount.com 帐户一起设置在 instance_template.py 中。

希望对您有所帮助。