重命名虚拟机


创建虚拟机 (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 进行身份验证。

    选择标签页以了解您打算如何使用本页面上的示例:

    控制台

    当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。

    gcloud

    1. 安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init
    2. 设置默认区域和可用区

    REST

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

      安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init

所需的角色

如需获得重命名虚拟机所需的权限,请让管理员向您授予项目的 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. 如果需要,请重启虚拟机

后续步骤