如何在Google Compute Engine上更改机器类型?

22
在 Google Compute Engine 上,是否有一种方法可以在创建后更改机器类型(例如,增加 CPU 核心)?

1
可能是如何更改GCE实例的机器类型?的重复问题。 - approxiblue
6个回答

17

您现在可以在Google计算引擎上进行此操作(您可以参考文档)。

您只需停止实例。然后,您便可以编辑实例类型并重新启动。


9

这似乎在gcloud中是可能的:

https://cloud.google.com/sdk/gcloud/reference/compute/instances/set-machine-type

gcloud compute instances set-machine-type 

允许您更改处于终止状态(即已停止的虚拟机实例)的虚拟机的机器类型。例如,如果example-instance是一个当前处于TERMINATED状态的g1-small虚拟机,则运行:

$ gcloud compute instances set-machine-type example-instance \ 
    --zone us-central1-b --machine-type n1-standard-4

将机器类型更改为n1-standard-4,这样当您下次启动example-instance时,它将被配置为n1-standard-4而不是g1-small。


7

更新:此答案已不再适用,因为在此答案编写后添加了更改实例类型的功能。请参见被接受的答案。

虽然GCE上没有直接的“编辑机器类型”选项,但实现该选项的方式是:

  1. 删除旧实例(确保磁盘未被删除)。
  2. 创建一个新实例并使用来自旧实例的磁盘(而不是创建一个新磁盘),并将其设置为所需的类型。

2
请注意,在删除实例之前,最好将所有实例详细信息记录下来,以便能够使用相同的配置重新创建它,包括:
  • 区域
  • IP(固定或短暂),请注意,短暂IP会在新实例上更改。
  • IP转发
  • 可用性策略
  • 自定义元数据
  • SSH密钥
  • 范围权限
您可以使用以下命令检索实例信息: gcloud compute instances describe INSTANCE --zone ZONE
- Paolo P.
除了短暂的外部IP地址,内部IP地址也会发生变化。 - jgoldschrafe
2
很遗憾没有一种方法可以“编辑机器类型”。在我的有限知识中,我看不出为什么不可能只需连接磁盘并在不同的机器上运行映像。有人知道为什么这会如此困难吗?当然,假设CPU等架构相同。 - Ashley Aitken
这已经不再正确了。 - josh123a123

4
使用gcloud compute instances set-machine-type命令可以将一个已停止的实例更改为另一种类型的机器,例如:
$ gcloud compute instances list
NAME    ZONE           MACHINE_TYPE  PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP      STATUS
foobaz  us-central1-a  f1-micro                   10.128.0.2   104.197.19.103  RUNNING
$ gcloud compute instances stop foobaz
$ gcloud compute instances set-machine-type foobaz --machine-type g1-small
$ gcloud compute instances start foobaz
$ gcloud compute instances list
NAME    ZONE           MACHINE_TYPE  PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP      STATUS
foobaz  us-central1-a  g1-small                   10.128.0.2   104.197.179.223  RUNNING

假设您已经设置了默认时区,例如: $ gcloud config set compute/zone us-central1-a 此外,请注意上面的示例中EXTERNAL_IP已更改。如果您希望新调整大小的机器保留原始IP地址,则在停止它之前,您应该先将外部IP地址从短暂的转换为静态的。具体操作请参考:将临时的 IP 地址提升为静态 IP 地址
$ ipaddr=$(gcloud --format="value(networkInterfaces[0].accessConfigs[0].natIP)" compute instances describe foobaz)
$ gcloud compute addresses create foobaz-ip --addresses $ipaddr

2
谷歌云文档指出,您可以从列出虚拟机实例的页面上进行此操作,但现在似乎并非如此。我发现您需要点击列表中的映像名称。然后会弹出一个页面,您可以在此编辑实例,包括类型。

0
要更改VM实例的机器类型,您需要先停止VM实例。之后,单击编辑,然后更改机器类型,最后保存。

嗨,欢迎来到Stackoverflow!在回答任何问题之前,如果您能阅读这些准则,那就太好了。谢谢。 - Shanteshwar Inde

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接