创建使用自定义主机名的虚拟机实例

当您创建虚拟机实例时,Google Cloud 会根据实例名称创建内部 DNS 名称。除非您指定自定义主机名,否则 Google Cloud 会使用自动创建的内部 DNS 名称作为其提供给虚拟机的主机名。

您可以通过指定任何完全限定 DNS 名称来创建使用自定义主机名的虚拟机。自定义主机名有助于保持一致的命名惯例,或支持预期使用特定主机名的应用的要求。

限制

  • 您必须手动配置自定义主机名的 DNS 记录。Compute Engine 内部 DNS 提供的自动创建的记录不解析自定义主机名。您可以使用以下任一方法来托管自定义主机名的 DNS 记录:

  • 创建虚拟机后,就无法更改自定义主机名。

  • 即使您指定自定义主机名,Google Cloud 仍会创建 Compute Engine 内部 DNS 名称。您仍然可以使用此自动创建的 DNS 记录联系您的虚拟机。

主机名必须符合 RFC 1035 要求才是有效主机名。要满足此要求,主机名必须包含一系列与正则表达式 [a-z]([-a-z0-9]*[a-z0-9])? 匹配的标签,各个标签用点连接起来。每个标签的长度为 1-63 个字符,整个序列不得超过 253 个字符。

准备工作

创建使用自定义主机名的虚拟机

控制台

  1. 在 Google Cloud Console 中,转到创建实例页面。

    转到“创建实例”页面

  2. 展开管理、安全、磁盘、网络、单独租用部分。
  3. 网络标签页的主机名下方,设置自定义主机名。
  4. 继续完成实例创建过程的剩余部分。

gcloud

使用 gcloud 命令行工具,按照说明通过映像快照创建实例、添加 --hostname 标志,并按如下方式使用 gcloud compute instances create 命令:

gcloud compute instances create instance-name \
    --hostname=hostname

替换以下内容:

  • instance-name:实例的名称
  • hostname:要分配的完全限定网域主机名。

举例来说,如要通过自定义主机名 test.example.com 创建名为 myinstance 的实例。您可以运行以下命令:

gcloud compute instances create myinstance \
    --hostname=test.example.com

API

按照 API 说明通过映像快照创建实例,并在请求正文中指定 hostname 字段。

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances

{
 "name": "instance-name",
 "hostname": "hostname",
 ...
}

替换以下内容:

  • project-id:您的项目 ID。
  • instance-name:实例的名称
  • hostname:要分配的完全限定网域主机名。
  • zone:要在其中创建实例的地区

验证自定义主机名

对于 Linux 虚拟机实例,您可以通过对虚拟机实例运行 hostname -f 命令来验证主机名。

您还可以使用 Google Cloud Console 或 gcloud 命令行工具验证自定义主机名。

控制台

  1. 要查看实例的自定义主机名,请转到虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 点击实例名称打开虚拟机实例详情页面。
  3. 查看主机名部分。只有设置了自定义主机名,才会显示主机名字段。

    显示主机名的虚拟机实例页面屏幕截图

gcloud

要使用 gcloud compute 查看实例的自定义主机名,请使用带 --format 标志的 instances describe 子命令过滤输出。将 instance-name 替换为实例名称。

gcloud compute instances describe instance-name \
    --format='get(hostname)'

例如,要查看名为 myinstance 的实例的自定义主机名,请运行以下命令。

gcloud compute instances describe myinstance \
    --format='get(hostname)'

输出结果可能类似于以下内容:

test.example.com

如果未设置自定义主机名,则此命令的输出为空。

后续步骤