Google Compute Engine:如何更改实例模板

Eli*_*and 4 templates google-compute-engine

我有一个 Google Compute Engine 组 Group。我已经更改了组反复使用的模板,它现在在Template5上。该组有一个实例 Instance,该实例使用先前的模板 (Template4)。Template4 已被删除,不再存在。我没有看到强制实例更改模板的方法。我尝试过/被阻止尝试的事情:

  • 编辑模板而不是删除和创建新模板。模板似乎不可编辑。
  • 更改实例组模板。我已经这样做了,它没有影响实例模板。
  • 在组内创建一个新实例并希望它选择新模板。显然有一种方法可以做到这一点,但是创建实例屏幕不允许我设置组,并且组屏幕没有“创建新实例”按钮。它也会失败,因为 Template5 包括使用外部磁盘,并且一次只能由一个实例使用,但如果创建成功,我可以删除旧实例。
  • 重启实例。
  • 编辑实例。模板在编辑屏幕中不可更改。

Lak*_*kar 9

实例模板资源在 GCP 中是不可变的。您只能通过创建新实例模板来编辑/更改托管实例组。

使用控制台将新模板添加到托管实例组后,您也可以通过执行以下命令在 gcloud 中执行此操作:

gcloud compute instance-groups managed set-instance-template \
<name-of-managed-instance-group> --template=<new-template-name> \
[--region=REGION | --zone=ZONE] [GLOBAL-FLAG …]
Run Code Online (Sandbox Code Playgroud)

现在,添加此模板后要创建的所有实例都将遵循实例模板中的规则。但是,这种实例模板的添加不会影响组中现有的实例,即使用旧实例模板的实例。您需要通过在 gcloud 中键入以下命令来重新创建这些实例:

gcloud compute instance-groups managed recreate-instances \
<name-of-managed-instance-group> --instances \
<name-of-the-existing-instances-separated-by-comma>
[--region=REGION | --zone=ZONE] [GLOBAL-FLAG …]
Run Code Online (Sandbox Code Playgroud)