创建并启动虚拟机实例

本文档介绍如何使用启动磁盘映像或启动磁盘快照创建和启动虚拟机 (VM) 实例。您可以使用 Google Distributed Cloud (GDC) 空气隔离 CLI、GDC 控制台或 API 执行此任务。

您可以创建具有一个或多个磁盘的虚拟机。您还可以在创建虚拟机后为其添加磁盘。Distributed Cloud 会在创建虚拟机实例后自动启动该实例。

您还可以在创建虚拟机之前或之后向虚拟机添加启动脚本。如需了解详情,请参阅将启动脚本与虚拟机实例搭配使用

本文档适用于平台管理员或应用运维人员群组中的开发者,这些开发者在 Google Distributed Cloud (GDC) 气隙环境中创建和管理虚拟机。 如需了解详情,请参阅 GDC 气隙环境文档的受众群体

准备工作

如需使用 gdcloud 命令行界面 (CLI) 命令,请确保您已下载、安装并配置 gdcloud CLI。Distributed Cloud 的所有命令都使用 gdcloudkubectl CLI,并且需要操作系统 (OS) 环境。

获取 kubeconfig 文件路径

如需针对 Management API 服务器运行命令,请确保您拥有以下资源:

  1. 登录并生成 Management API 服务器的 kubeconfig 文件(如果您还没有)。

  2. 使用 Management API 服务器的 kubeconfig 文件路径替换这些说明中的 MANAGEMENT_API_SERVER

虚拟机命名准则

创建虚拟机实例时,请遵循以下命名准则:

  • 虚拟机名称只能包含字母数字字符和短划线。
  • 使用字母数字字符和短划线以外的符号(例如句点)会导致无法连接到虚拟机。
  • 虚拟机名称不得超过 53 个字符。

申请 IAM 角色

如需执行本页面上列出的任务,您必须拥有分配的必要 IAM 角色:

  • 虚拟机项目管理员 (project-vm-admin):在项目命名空间中创建、修改、列出和删除虚拟机。

  • Project Viewer (project-viewer):查看项目命名空间中的所有资源。

  • 虚拟机映像项目管理员 (project-vm-image-admin):在项目命名空间中创建、列出和删除 GDC 提供的虚拟机映像和自定义虚拟机映像。

所有虚拟机角色都必须绑定到虚拟机所在项目的命名空间。按照相关步骤验证您的访问权限。

通过映像创建虚拟机实例

本部分介绍如何使用 GDC 提供的操作系统映像自定义操作系统映像创建虚拟机。

查看 GDC 提供的可用映像的列表

在使用 GDC 提供的映像创建虚拟机之前,请先查看可用映像的列表。如需详细了解 GDC 提供的映像,请参阅受支持的虚拟机映像

gdcloud

  • 列出所有可用的映像及其最小磁盘大小:

    gdcloud compute images list
    

    此命令包含 GDC 提供的映像和自定义映像。选择 vm-system 命名空间中的任一映像。

API

  1. 列出所有可用的 GDC 提供的映像:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimage.virtualmachine.gdc.goog
    
  2. 获取特定 GDC 提供映像的 minimumDiskSize

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimage.virtualmachine.gdc.goog BOOT_DISK_IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    替换以下内容:

    • MANAGEMENT_API_SERVER:Management API 服务器的 kubeconfig 文件。
    • BOOT_DISK_IMAGE_NAME:映像的名称。

通过 GDC 提供的映像创建虚拟机实例

默认情况下,所有 GDC 项目都可以使用 GDC 提供的操作系统映像创建虚拟机。

控制台

  1. 在导航菜单中,依次选择虚拟机 > 实例
  2. 点击创建实例
  3. 名称字段中,指定虚拟机的名称。
  4. 选择要在其中创建虚拟机的可用区。
  5. 可选:点击添加标签可为虚拟机分配任何标签。这有助于整理您的虚拟机实例。
  6. 选择要用于虚拟机的机器配置:
    1. 通用:确保机器类型符合您的工作负载要求。
    2. 自定义:设置机器的核心数量和内存要求。
  7. 点击下一步
  8. 如果您想启用外部访问权限,请选择允许外部访问
  9. 点击下一步
  10. 启动磁盘部分,系统会自动添加具有默认配置的启动磁盘。您可以按原样保留此配置,也可以点击更改来修改默认配置:
    1. 磁盘详情部分中,修改磁盘名称
    2. 磁盘设置部分中,修改大小值。
    3. 来源图片部分中,点击图片名称菜单,然后选择一张图片。
    4. 选中或取消选中开启安全启动。如果使用 Windows 映像,您必须启用安全启动。
    5. 选择保留磁盘删除磁盘,以配置磁盘删除规则。
    6. 点击保存
  11. 点击创建以创建虚拟机实例。

gdcloud

  1. 选择 GDC 提供的映像,在目标可用区中创建虚拟机实例:

    gdcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --image=BOOT_DISK_IMAGE_NAME \
      --image-project=vm-system \
      --boot-disk-size=BOOT_DISK_SIZE \
      --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    替换以下内容:

    变量定义
    VM_NAME 新虚拟机的名称。名称只能包含字母数字字符和短划线,且长度不得超过 53 个字符。
    BOOT_DISK_IMAGE_NAME 要用于新虚拟机启动磁盘的映像的名称。
    BOOT_DISK_SIZE 启动磁盘的大小,例如 20GB
    此值必须始终大于或等于启动磁盘映像的 minimumDiskSize
    NO_BOOT_DISK_AUTO_DELETE truefalse,表示在删除虚拟机实例时是否自动删除启动磁盘的反向值。
    MACHINE_TYPE 新虚拟机的预定义机器类型。如需选择可用的机器类型,请运行以下命令:
    gdcloud compute machine-types list

API

  1. 选择 GDC 提供的映像,在目标可用区中创建虚拟机实例:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: vm-system
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
      - virtualMachineDiskRef:
          name: VM_BOOT_DISK_NAME
        boot: true
        autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    替换以下内容:

    变量定义
    MANAGEMENT_API_SERVER Management API 服务器 kubeconfig 文件。
    PROJECT 用于创建虚拟机的 GDC 项目。
    VM_NAME 新虚拟机的名称。名称只能包含字母数字字符和短划线,且长度不得超过 53 个字符。
    VM_BOOT_DISK_NAME 新虚拟机启动磁盘的名称。
    BOOT_DISK_IMAGE_NAME 要用于新虚拟机启动磁盘的映像的名称。
    BOOT_DISK_SIZE 启动磁盘的大小,例如 20Gi
    此值必须始终大于或等于启动磁盘映像的 minimumDiskSize
    BOOT_DISK_AUTO_DELETE truefalse,用于指示在删除虚拟机实例时是否自动删除启动磁盘。
    MACHINE_TYPE 新虚拟机的预定义机器类型。如需选择可用的机器类型,请运行以下命令:
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system
  2. 验证虚拟机是否已创建,并等待虚拟机显示 Running 状态。Running 状态并不表示操作系统已完全准备就绪并可供访问。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachine.virtualmachine.gdc.goog VM_NAME
    

    VM_NAMEPROJECT 替换为虚拟机的名称和项目。

    如需在创建虚拟机实例时添加启动脚本,请按照将启动脚本与虚拟机实例搭配使用页面上提供的步骤操作。请确保在添加脚本之前关闭虚拟机。

通过自定义映像创建虚拟机实例

自定义映像专属于您的项目。如需使用自定义映像创建虚拟机,您必须先在同一项目中创建自定义映像

控制台

  1. 在导航菜单中,依次选择虚拟机 > 实例
  2. 点击创建实例
  3. 名称字段中,指定虚拟机的名称。
  4. 选择要在其中创建虚拟机的可用区。
  5. 可选:点击添加标签可为虚拟机分配任何标签。这有助于整理虚拟机实例。
  6. 选择要用于虚拟机的机器配置:
    1. 通用:确保机器类型符合您的工作负载要求。
    2. 自定义:设置机器的核心数量和内存要求。
  7. 点击下一步
  8. 选中允许外部访问复选框,以启用虚拟机实例的外部访问权限。
  9. 点击下一步
  10. 启动磁盘部分,系统会自动添加具有默认配置的启动磁盘。您可以按原样保留此配置,也可以点击更改来修改默认配置:
    1. 磁盘详情部分中,修改磁盘名称
    2. 磁盘设置部分中,修改大小值。
    3. 来源图片部分,点击图片名称菜单,然后选择带有客户创建子文字的图片。
    4. 选中或取消选中开启安全启动。如果使用 Windows 映像,您必须启用安全启动。
    5. 选择保留磁盘删除磁盘,以配置磁盘删除规则。
    6. 点击保存
  11. 点击创建以创建虚拟机实例。

gdcloud

  1. 列出所有自定义映像

    gdcloud compute images list --no-standard-images=true
    
  2. 创建该虚拟机实例:

    gdcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --image=BOOT_DISK_IMAGE_NAME \
      --boot-disk-size=BOOT_DISK_SIZE \
      --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    替换以下内容:

    变量定义
    VM_NAME 新虚拟机的名称。名称只能包含字母数字字符和短划线,且长度不得超过 53 个字符。
    BOOT_DISK_IMAGE_NAME 要用于新虚拟机启动磁盘的映像的名称。
    BOOT_DISK_SIZE 启动磁盘的大小,例如 20GB
    此值必须始终大于或等于启动磁盘映像的 minimumDiskSize
    NO_BOOT_DISK_AUTO_DELETE truefalse,表示在删除虚拟机实例时是否自动删除启动磁盘的反向值。
    MACHINE_TYPE 新虚拟机的预定义机器类型。如需选择可用的机器类型,请运行以下命令:
    gdcloud compute machine-types list

API

  1. 列出所有自定义映像

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachineimage.virtualmachine.gdc.goog
    

    获取特定映像的 minimumDiskSize 以创建虚拟机实例:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachineimage.virtualmachine.gdc.goog BOOT_DISK_IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    替换以下内容:

    变量定义
    MANAGEMENT_API_SERVER Management API 服务器 kubeconfig 文件。
    BOOT_DISK_IMAGE_NAME 从用于列出所有自定义映像的命令中选择的映像的名称。
    PROJECT 相应图片的项目。
  2. 创建该虚拟机实例:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
      - virtualMachineDiskRef:
          name: VM_BOOT_DISK_NAME
        boot: true
        autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    替换以下内容:

    变量定义
    MANAGEMENT_API_SERVER Management API 服务器 kubeconfig 文件。
    PROJECT 用于创建虚拟机的 GDC 项目。
    VM_NAME 新虚拟机的名称。名称只能包含字母数字字符和短划线,且长度不得超过 53 个字符。
    VM_BOOT_DISK_NAME 新虚拟机启动磁盘的名称。
    BOOT_DISK_IMAGE_NAME 要用于新虚拟机启动磁盘的映像的名称。
    BOOT_DISK_SIZE 启动磁盘的大小,例如 20Gi
    此值必须始终大于或等于启动磁盘映像的 minimumDiskSize
    BOOT_DISK_AUTO_DELETE truefalse,用于指示在删除虚拟机实例时是否自动删除启动磁盘。
    MACHINE_TYPE 新虚拟机的预定义机器类型。如需选择可用的机器类型,请运行以下命令:
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
  3. 验证虚拟机是否已创建,并等待虚拟机显示其处于 Running 状态。处于 Running 状态并不意味着操作系统已完全准备就绪且可供访问。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachine.virtualmachine.gdc.goog VM_NAME
    

    VM_NAMEPROJECT 替换为虚拟机的名称和项目。

创建具有额外的非启动磁盘的虚拟机实例

您可以在创建虚拟机时创建非启动磁盘。每个额外的磁盘都可以指定映像来源,也可以不指定。后一种情况用于创建空白磁盘。

控制台

  1. 在导航菜单中,依次选择虚拟机 > 实例
  2. 点击创建实例
  3. 名称字段中,指定虚拟机的名称。
  4. 选择要在其中创建虚拟机的可用区。
  5. 可选:点击添加标签可为虚拟机分配任何标签。这有助于整理虚拟机实例。
  6. 选择要用于虚拟机的机器配置:
    1. 通用:确保机器类型符合您的工作负载要求。
    2. 自定义:设置机器的核心数量和内存要求。
  7. 点击下一步
  8. 选中允许外部访问复选框,以启用虚拟机实例的外部访问权限。
  9. 点击下一步
  10. 启动磁盘部分,系统会自动添加具有默认配置的启动磁盘。您可以按原样保留此配置,也可以点击更改来修改默认配置:
    1. 磁盘详情部分中,修改磁盘名称
    2. 磁盘设置部分中,修改大小值。
    3. 来源图片部分中,点击图片名称菜单,然后选择一张图片。
    4. 选中或取消选中开启安全启动。如果使用 Windows 映像,您必须启用安全启动。
    5. 选择保留磁盘删除磁盘,以配置磁盘删除规则。
    6. 点击保存
  11. 如需向虚拟机实例添加更多磁盘,请选择添加新磁盘
    1. 为您的虚拟机磁盘分配名称。
    2. 配置磁盘大小和连接设置。
    3. 点击保存
  12. 点击创建以创建虚拟机实例。

gdcloud

  1. 通过映像创建磁盘:

    gdcloud compute disks create NON_BOOT_DISK_FROM_IMAGE \
      --size=NON_BOOT_DISK_SIZE \
      --image=NON_BOOT_DISK_IMAGE_NAME \
      --image-project=NON_BOOT_DISK_IMAGE_NAMESPACE
    
  2. 通过空白映像创建磁盘:

    gdcloud compute disks create NON_BOOT_BLANK_DISK \
      --size=NON_BOOT_BLANK_DISK_SIZE
    
  3. 使用上一步中的磁盘创建实例:

    gdcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --image=BOOT_DISK_IMAGE_NAME \
      --image-project=NON_BOOT_DISK_IMAGE_NAMESPACE \
      --boot-disk-size=BOOT_DISK_SIZE \
      --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE \
      --disk=name=NON_BOOT_DISK_FROM_IMAGE \
      --disk=name=NON_BOOT_BLANK_DISK
    

    替换以下内容:

    变量定义
    VM_NAME 新虚拟机的名称。名称只能包含字母数字字符和短划线,且长度不得超过 53 个字符。
    BOOT_DISK_IMAGE_NAME 要用于新虚拟机启动磁盘的映像的名称。
    BOOT_DISK_IMAGE_NAMESPACE 要用于新虚拟机启动磁盘的映像的命名空间。对于 GDC 提供的映像,请使用 vm-system;对于自定义映像,请将此字段留空。
    BOOT_DISK_SIZE 启动磁盘的大小,例如 20GB
    此值必须始终大于或等于启动磁盘映像的 minimumDiskSize
    NO_BOOT_DISK_AUTO_DELETE truefalse,表示在删除虚拟机实例时是否自动删除启动磁盘的反向值。
    MACHINE_TYPE 新虚拟机的预定义机器类型。如需选择可用的机器类型,请运行以下命令:
    gdcloud compute machine-types list

    对于额外的磁盘,请替换以下内容:

    • NON_BOOT_DISK_FROM_IMAGENON_BOOT_BLANK_DISK:附加磁盘的名称。
    • NON_BOOT_DISK_SIZENON_BOOT_BLANK_DISK_SIZE:附加磁盘的大小,例如 20GB
    • NON_BOOT_DISK_IMAGE_NAME:要用作非启动磁盘的映像的名称。
    • NON_BOOT_DISK_IMAGE_NAMESPACE:要用作非启动磁盘的映像的命名空间。对于 GDC 提供的映像,请使用 vm-system;对于自定义映像,请将此字段留空。

API

  1. 创建具有非启动磁盘的虚拟机:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: NON_BOOT_DISK_FROM_IMAGE
    spec:
      source:
        image:
          name: NON_BOOT_DISK_IMAGE_NAME
          namespace: NON_BOOT_DISK_IMAGE_NAMESPACE
      size: NON_BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: NON_BOOT_BLANK_DISK
    spec:
      size: NON_BOOT_BLANK_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: BOOT_DISK_IMAGE_NAMESPACE
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
      - virtualMachineDiskRef:
          name: VM_BOOT_DISK_NAME
        boot: true
        autoDelete: BOOT_DISK_AUTO_DELETE
      - virtualMachineDiskRef:
          name: NON_BOOT_DISK_FROM_IMAGE
      - virtualMachineDiskRef:
          name: NON_BOOT_BLANK_DISK
    EOF
    

    替换以下内容:

    变量定义
    MANAGEMENT_API_SERVER Management API 服务器 kubeconfig 文件。
    PROJECT 要在虚拟机中创建的 GDC 项目。
    VM_NAME 新虚拟机的名称。名称只能包含字母数字字符和短划线,且长度不得超过 53 个字符。
    VM_BOOT_DISK_NAME 新虚拟机启动磁盘的名称。
    BOOT_DISK_IMAGE_NAME 要用于新虚拟机启动磁盘的映像的名称。
    BOOT_DISK_IMAGE_NAMESPACE 要用于新虚拟机启动磁盘的映像的命名空间。对于 GDC 提供的映像,请使用命名空间 vm-system;对于自定义映像,请留空。
    BOOT_DISK_SIZE 启动磁盘的大小,例如 20Gi
    此值必须始终大于或等于启动磁盘映像的 minimumDiskSize
    BOOT_DISK_AUTO_DELETE truefalse,用于指示在删除虚拟机实例时是否自动删除启动磁盘。
    MACHINE_TYPE 新虚拟机的预定义机器类型。如需选择可用的机器类型,请运行以下命令:
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system

    对于额外的磁盘,请替换以下内容:

    • NON_BOOT_DISK_FROM_IMAGENON_BOOT_BLANK_DISK:附加磁盘的名称。
    • NON_BOOT_DISK_SIZENON_BOOT_BLANK_DISK_SIZE:附加磁盘的大小,例如 20Gi
    • NON_BOOT_DISK_IMAGE_NAME:要用作非启动磁盘的映像的名称。
    • NON_BOOT_DISK_IMAGE_NAMESPACE:要用作非启动磁盘的映像的命名空间。对于 GDC 提供的映像,请使用命名空间 vm-system;对于自定义映像,请留空。

    在使用磁盘之前,格式化并装载磁盘

根据快照或备份创建虚拟机

您可以通过以下方式从快照创建新虚拟机:

  • 恢复虚拟机启动磁盘:如果您使用快照备份了虚拟机的启动磁盘,请使用该快照创建新的虚拟机。如需了解详情,请参阅恢复快照
    • 恢复非启动磁盘:如果您使用快照备份了非启动磁盘,则还可以使用相同的说明在创建虚拟机时将快照恢复到新的非启动磁盘。

如需使用相同的启动磁盘创建多个虚拟机,请执行以下操作:

  1. 创建自定义映像
  2. 根据该映像创建虚拟机,而无需使用快照。

创建具有指定 IP 地址和子网的虚拟机实例

默认情况下,您可以创建没有网络规范的 Distributed Cloud 虚拟机。此类虚拟机连接到默认虚拟私有云 (VPC),并从默认子网动态分配 IP。如需创建具有默认配置的虚拟机,请参阅创建具有 GDC 提供映像的虚拟机

如果您不想为 Distributed Cloud 虚拟机使用默认 IP 配置,可以创建具有动态或静态 IP 地址的虚拟机:

  • 来自自定义子网的动态 IP:您创建一个具有特定 CIDR 的子网,并创建一个 IP 从该 CIDR 动态分配的虚拟机。

  • 来自自定义子网的静态 IP:您创建一个具有特定 CIDR 的子网,并创建一个具有来自该 CIDR 的静态 IP 的虚拟机。

如需详细了解子网创建,请参阅 GDC 中的子网和 IP 地址

本部分介绍如何创建具有动态分配的地址静态 IP 地址的虚拟机。

创建具有从自定义子网动态分配的 IP 的虚拟机

创建具有特定 CIDR 中动态分配的 IP 的虚拟机:

   kubectl --kubeconfig MANAGEMENT_API_SERVER \
     -n PROJECT \
     apply -f - <<EOF
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachineDisk
   metadata:
     name: VM_BOOT_DISK_NAME
   spec:
     source:
       image:
         name: BOOT_DISK_IMAGE_NAME
         namespace: vm-system
     size: BOOT_DISK_SIZE
   ---
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachine
   metadata:
     name: VM_NAME
   spec:
     compute:
       virtualMachineType: MACHINE_TYPE
     disks:
     - virtualMachineDiskRef:
         name: VM_BOOT_DISK_NAME
       boot: true
       autoDelete: BOOT_DISK_AUTO_DELETE
     network:
       interfaces:
       - subnet: SUBNET_NAME
   EOF

执行以下变量替换操作:

变量定义
MANAGEMENT_API_SERVER Management API 服务器 kubeconfig 文件。
PROJECT 用于创建虚拟机的 Distributed Cloud 项目。
VM_NAME 新虚拟机的名称。名称只能包含字母数字字符和短划线,最多 53 个字符。
VM_BOOT_DISK_NAME 新虚拟机启动磁盘的名称。
BOOT_DISK_IMAGE_NAME 要用于新虚拟机启动磁盘的映像的名称。
BOOT_DISK_SIZE 启动磁盘的大小,例如 20Gi
此值必须始终大于或等于启动磁盘映像的 minimumDiskSize
BOOT_DISK_AUTO_DELETE truefalse,用于指明在删除虚拟机实例时是否自动删除启动磁盘。
MACHINE_TYPE 新虚拟机的预定义机器类型。选择可用的机器类型:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
SUBNET_NAME 自定义子网的名称。

从子网中创建具有静态 IP 的虚拟机

通过自定义子网创建具有静态 IP 的虚拟机:

   kubectl --kubeconfig MANAGEMENT_API_SERVER \
     -n PROJECT \
     apply  -f - <<EOF
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachineDisk
   metadata:
     name: VM_BOOT_DISK_NAME
   spec:
     source:
       image:
         name: BOOT_DISK_IMAGE_NAME
         namespace: vm-system
     size: BOOT_DISK_SIZE
   ---
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachine
   metadata:
     name: VM_NAME
   spec:
     compute:
       virtualMachineType: MACHINE_TYPE
     disks:
     - virtualMachineDiskRef:
         name: VM_BOOT_DISK_NAME
       boot: true
       autoDelete: BOOT_DISK_AUTO_DELETE
     network:
       interfaces:
       - subnet: SUBNET_NAME
         ipAddresses:
         - address: IP_ADDRESS
   EOF

执行以下变量替换操作:

变量定义
MANAGEMENT_API_SERVER Management API 服务器 kubeconfig 文件。
PROJECT 用于创建虚拟机的 Distributed Cloud 项目。
VM_NAME 新虚拟机的名称。名称只能包含字母数字字符和短划线,且长度不得超过 53 个字符。
VM_BOOT_DISK_NAME 新虚拟机启动磁盘的名称。
BOOT_DISK_IMAGE_NAME 要用于新虚拟机启动磁盘的映像的名称。
BOOT_DISK_SIZE 启动磁盘的大小,例如 20Gi
此值必须始终大于或等于启动磁盘映像的 minimumDiskSize
BOOT_DISK_AUTO_DELETE truefalse,用于指明在删除虚拟机实例时是否自动删除启动磁盘。
MACHINE_TYPE 新虚拟机的预定义机器类型。如需选择可用的机器类型,请运行以下命令:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
SUBNET_NAME 自定义子网的名称。
IP_ADDRESS IP 地址。该地址必须位于所选子网范围内。您只能在 ipAddresses 字段中指定一个 IP 地址

后续步骤