如果已停止的实例不是代管式实例组的一部分,则可以更改其机器类型。
如果现有机器类型不适合您在实例上运行的工作负载,请更改相应实例的机器类型。在工作负载发生变化时,您可以更改实例的机器类型,以调整 vCPU 数量和内存量。例如,您可以在设置、开发和测试期间使用较小的机器,并在准备好运行生产工作负载时将实例改为使用更大的机器类型。
对于不属于代管式实例组的实例,您可以在不影响实例的 SSH 密钥、实例配置(例如实例元数据)和永久性磁盘数据(包括已安装的应用和应用数据)的情况下更改机器类型。
如果您需要更改代管式实例组内实例的机器类型,请阅读更新代管式实例组。
准备工作
- 如果您要使用本指南中的命令行示例,请执行以下操作:
- 安装或更新到 gcloud 命令行工具的最新版本。
- 设置默认区域和可用区。
- 如果您要使用本指南中的 API 示例,请设置 API 访问权限。
- 了解如何停止实例。
- 了解机器类型。
- 如果您的实例使用临时外部 IP 地址,则 IP 地址可能会在您修改实例的机器类型时发生变化。如需保留 IP 地址,请将其升级为静态外部 IP 地址。
更改机器类型
您只能更改已停止实例的机器类型。实例只有在处于 TERMINATED
状态时才会被视为已停止。您无法更改正在运行的实例的机器类型。
执行此任务所需的权限
您必须拥有以下权限才能执行此任务:
- 针对实例的
compute.instances.setMachineType
权限
控制台
在 Google Cloud Console 中,转到虚拟机实例页面。
在名称列中,点击您要更改其机器类型的实例的名称。
在实例详细信息页面中,完成以下步骤:
- 如果您尚未停止实例,请点击停止按钮以停止实例。
- 选择要修改的虚拟机实例。
点击虚拟机实例详情页面顶部的修改按钮。
在机器配置部分中,选择要使用的机器类型,或创建自定义机器类型。
保存更改。
gcloud
使用
gcloud compute instances stop
命令停止实例。使用
gcloud compute instances set-machine-type
命令更改机器类型。gcloud compute instances set-machine-type INSTANCE_NAME \ --machine-type NEW_MACHINE_TYPE
替换以下内容:
API
使用
instances.stop
方法停止实例。使用
instances.setMachineType
方法更改机器类型:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/INSTANCE_ZONE/instances/INSTANCE_NAME/setMachineType { machineType: "zones/MACHINE_TYPE_ZONE/machineTypes/NEW_MACHINE_TYPE" }
替换以下内容:
改用较小的机器类型
如果您弃用配备更多资源的机器类型而改用配备较少资源的机器类型(如弃用 e2-standard-8
机器类型而改用 e2-standard-2
),可能会遇到硬件资源问题或性能限制,因为较小机器类型不如较大机器类型功能强大。请确保新的机器类型能够支持目前在实例上运行的所有应用和服务,或者更新您的服务和应用以便在较小的机器类型上运行。
结算影响
不同机器类型的计费费率不同,因此请确保您了解更改机器类型的价格影响。例如,e2-standard-2
机器类型的费用高于 e2-micro
机器类型。
更改机器类型可能还会影响相关虚拟机的持续使用折扣。系统会针对同一区域中的不同类别单独计算持续使用折扣。如果您要更改机器类型,使新机器类型属于其他类别,则虚拟机实例的后续运行时间将计入新类别的持续使用折扣。
例如,假设您有一个机器类型为 n2-standard-2
的实例,该实例运行了半个月。然后决定将该机器类型更改为 m1-ultramem-40
。在您进行此更改后,Compute Engine 就会开始将虚拟机实例的运行时间计入内存优化的 vCPU 和内存类别的持续使用折扣。
在您的帐单上,您会看到机器类型更改之前应用于 n2-standard-2
机器类型的持续使用折扣,以及针对 m1-ultramem-40
的单独持续使用折扣(如果您的实例在 m1-ultramem-40
上保持运行的时间至少占本月剩余时间的 25%)。
最佳做法
使用快照定期对永久性磁盘数据进行备份是一种很好的做法。在更改机器类型之前,考虑截取永久性磁盘数据的快照。如果您要确保新机器类型能够支持现有虚拟机实例上的数据,可以截取永久性磁盘快照,并使用该快照来启动第二个运行新机器类型的虚拟机实例,以确认该实例将成功启动。
如果您的实例上挂接了第二个永久性磁盘,请确保将该磁盘添加到 /etc/fstab
文件中,这样该磁盘就会在实例重新启动时自动装载。