重命名虚拟机


创建虚拟机 (VM) 实例时,必须指定一个名称。创建虚拟机后,您可以选择重命名该虚拟机。在以下情况下,更改虚拟机名称可能很有用:

  • 为了更好地表示在虚拟机上运行的工作负载。
  • 引用虚拟机上运行的操作系统。
  • 遵循组织要求的任何命名规则。

虚拟机统一资源标识符 (URI)

更改虚拟机的名称可能会影响您的项目。您可以通过虚拟机资源的 URI 来引用实例资源,而不是通过名称。URI 的格式如下:

projects/PROJECT_ID/zones/ZONE/instances/VM_ID

URI 包含以下值:

  • PROJECT_ID:虚拟机所在项目的 ID。

  • ZONE:该虚拟机所在的可用区。

  • VM_ID:现有虚拟机的 ID。如需查看现有虚拟机的 ID,请查看虚拟机的详细信息,然后查看 id 字段的值。

价格

重命名虚拟机不会改变向您收取的金额。此外,由于账单根据虚拟机的库存单元 (SKU) 而非其名称显示虚拟机,因此账单中不会显示虚拟机的名称。

限制

重命名虚拟机时,存在以下限制:

  • 自动命名资源

    • 重命名虚拟机时,基于原始虚拟机名称的任何资源的名称都不会更新。例如,创建虚拟机时,启动磁盘的名称与虚拟机名称相同。如果重命名虚拟机,则启动磁盘的名称不会更改。
  • DHCP 服务器

    • 重命名虚拟机后,DHCP 服务器将以如下格式的更新后主机名响应 DHCP 请求:HOSTNAME.c.PROJECT_ID.internal(全局 DNS)和 HOSTNAME.ZONE.c.PROJECT_ID.internal(可用区 DNS)。如需了解详情,请参阅内部 DNS 名称的类型
  • Google Cloud 控制台

    • 您必须刷新浏览器,Google Cloud 控制台才能更新虚拟机的名称。
  • 主机名

    • 更改实例名称时,主机名也会随之修改。在 Windows 上,可能需要重新启动才能更新主机名。

    • 具有自定义主机名的虚拟机不会更新。

    • 直接在主机上更改主机名不会影响虚拟机资源的名称。

  • 代管式实例组

    • 您无法重命名代管式实例组 (MIG) 中的实例,因为这些实例会自动并永久地继承其无状态 MIG 的 base instance name 属性的名称。
  • 命名规则

    • 您不能使用已被项目中其他虚拟机使用的名称重命名虚拟机。

    • 虚拟机名称必须遵循资源命名规则

  • 虚拟机状态

    • 在重命名实例之前,请停止实例,因为您只能重命名处于 TERMINATED 状态的虚拟机。例如,您无法重命名处于 SUSPENDED 状态的虚拟机。

准备工作

  • 查看并更新以下内容(如果适用):
    • Cloud Monitoring 组、图表和提醒:Monitoring 会匹配字符串,当您重命名虚拟机时,这些字符串不会更新。如果您重命名虚拟机,请更新 Monitoring 规则,以将重命名的虚拟机添加到您的报告中。
    • 控制台网址:重命名虚拟机会更改其控制台网址。如果您重命名虚拟机,则必须更新引用该虚拟机的控制台网址的链接(例如浏览器书签)。
    • Identity and Access Management (IAM) 条件角色绑定:条件角色绑定支持根据资源名称授予权限。例如,如果虚拟机的名称以特定字符串开头,IAM 可能会向用户授予角色。当您更改虚拟机的名称时,这些绑定不会更新,因此如果您更改了前缀名称适用的虚拟机,则用户对该虚拟机资源的访问权限可能会受到影响。如果您重命名虚拟机,请更新这些绑定。
    • 内部 DNS 服务缓存:内部 DNS 服务向虚拟机分配内部 DNS 名称,其中主机名的格式为 HOSTNAME.c.PROJECT_ID.internal(全局 DNS )和 HOSTNAME.ZONE.c.PROJECT_ID.internal(区域 DNS)。重命名虚拟机后,这些主机名会发生变化。然后,内部 DNS 服务会开始解析为新主机名,发送到先前 DNS 名称的请求会失败。如果您重命名虚拟机,则可能需要更新 DNS 缓存以更新主机名。如需详细了解全局 DNS 和区域 DNS 主机名,请参阅内部 DNS 名称的类型
    • 元数据查询:重命名虚拟机后,元数据服务器会报告新名称。如果您重命名虚拟机,请更新查询元数据服务器的任何脚本或程序,以使其查询虚拟机的新名称。
    • 限制外部 IP 地址的组织政策:针对具有外部 IP 地址的虚拟机的限制条件引用虚拟机名称。您重命名虚拟机后,系统不会更新此限制条件。如果您重命名虚拟机,请使用虚拟机的新名称更新外部 IP 组织政策。
    • SQL Server 主机名:如果您要重命名托管 SQL Server 的虚拟机,则必须更新 SQL 服务器虚拟机名称。如需了解详情,请参阅重命名托管 SQL Server 独立实例的计算机
  • 请设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

所需的角色

如需获得重命名虚拟机所需的权限,请让管理员向您授予项目的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

此预定义角色包含重命名虚拟机所需的 compute.instances.setName 权限。

您也可以使用自定义角色或其他预定义角色来获取此权限。

重命名虚拟机

您只能重命名处于 TERMINATED 状态的已停止的虚拟机。

控制台

如需重命名虚拟机,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到“虚拟机实例”

  2. 名称列中,点击虚拟机的名称。

  3. 如果您尚未停止虚拟机,请执行以下操作:

    1. 点击 停止

    2. 点击停止进行确认。

      停止虚拟机需要长达 90 秒才能完成。

  4. 点击 修改

  5. 虚拟机实例名称字段中,为虚拟机输入新名称。

  6. 点击保存

    重命名虚拟机最多可能需要一分钟才能完成。如果在重命名虚拟机后收到“Google Cloud 找不到虚拟机”的错误,请刷新浏览器。

  7. 如果需要,请点击 启动/恢复以重启虚拟机。

gcloud

如需重命名虚拟机,请执行以下操作:

  1. 停止虚拟机(如果尚未停止)。

  2. 如需重命名虚拟机,请使用 gcloud compute instances set-name 命令

    gcloud compute instances set-name VM_NAME \
        --new-name=NEW_VM_NAME \
        --project=PROJECT_ID \
        --zone=ZONE
    

    替换以下内容:

    • VM_NAME:现有虚拟机的名称。

    • NEW_VM_NAME:指定虚拟机的新名称。

    • PROJECT_ID:虚拟机所在项目的 ID。

    • ZONE:该虚拟机所在的可用区。

    重命名虚拟机最多可能需要一分钟才能完成。

  3. 如果需要,请重启虚拟机

REST

如需重命名虚拟机,请执行以下操作:

  1. 停止虚拟机(如果尚未停止)。

  2. 如需重命名虚拟机,请向 instances.setName 方法发出 POST 请求。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setName
    
    {
      "currentName": "VM_NAME",
      "name": "NEW_VM_NAME"
    }
    

    替换以下内容:

    • PROJECT_ID:虚拟机所在项目的 ID。

    • ZONE:该虚拟机所在的可用区。

    • VM_NAME:现有虚拟机的名称。

    • NEW_VM_NAME:指定虚拟机的新名称。

    重命名虚拟机最多可能需要一分钟才能完成。要监控重命名状态,请轮询重命名 API 返回的操作 ID。如需了解详情,请参阅处理 API 响应

  3. 如果需要,请重启虚拟机

后续步骤