在 Google Compute Engine 上,是否有一种方法可以在创建后更改机器类型(例如,增加 CPU 核心)?
这似乎在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。
更新:此答案已不再适用,因为在此答案编写后添加了更改实例类型的功能。请参见被接受的答案。
虽然GCE上没有直接的“编辑机器类型”选项,但实现该选项的方式是:
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