创建并启动虚拟机实例

本页介绍了如何使用启动磁盘映像或启动磁盘快照创建虚拟机 (VM) 实例。

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

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

准备工作

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

获取 kubeconfig 文件路径

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

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

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

请求权限和访问权限

如需执行本页面中列出的任务,您必须具有 Project VirtualMachine Admin 角色。按照相关步骤验证您是否在虚拟机所在项目的命名空间中拥有 Project VirtualMachine Admin (project-vm-admin) 角色。

对于使用 GDC 控制台或 gdcloud CLI 的虚拟机操作,请让您的项目 IAM 管理员为您分配“Project VirtualMachine Admin”角色和“Project Viewer”角色 (project-viewer)。

通过映像创建虚拟机实例

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

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

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

gdcloud

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

    gdcloud compute images list
    

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

API

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

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

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

    替换以下内容:

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

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

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

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 \
        apply -n PROJECT -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 管理 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 新虚拟机的预定义机器类型。如需选择可用的机器类型,请运行以下命令:
    gdcloud compute machine-types list
  2. 验证虚拟机是否已创建,并等待虚拟机显示 Running 状态。Running 状态并不表示操作系统已完全准备就绪并可供访问。

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

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

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

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

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

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 \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT
    

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

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

    替换以下内容:

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

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -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 管理 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 \
    get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
    

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

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

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

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=vm-system \
        --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 \
        apply -n PROJECT -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 管理 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. 根据该映像创建虚拟机,而无需使用快照。

创建不使用机器类型的虚拟机

Distributed Cloud 提供了预定义机器类型,可供您在创建虚拟机实例时使用。预定义机器类型中的 vCPU 数量和内存量是预先设置的。

如果预定义虚拟机不能满足您的需求,请使用自定义虚拟化硬件设置创建虚拟机实例。

自定义虚拟机非常适合以下场景:

  • 不适用于预定义虚拟机类型的工作负载。
  • 工作负载需要更高的处理能力或更多的内存,但又不需要更高级别的机器类型所提供的全面升级。

gdcloud

  1. 创建具有您定义的机器类型的虚拟机:

    gdcloud compute instances create VM_NAME \
        --custom-cpu=NUM_VCPU \
        --custom-memory=MEMORY
        --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,表示在删除虚拟机实例时是否自动删除启动磁盘的反向值。
    NUM_VCPU vCPU 的数量。支持的 vCPU 数量上限为 192。
    MEMORY 内存大小,例如 8G。内存大小上限为 1 TB。

API

  1. 创建具有您定义的机器类型的虚拟机:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -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:
        vcpus: NUM_VCPU
        memory: MEMORY
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    替换以下内容:

    变量定义
    MANAGEMENT_API_SERVER 管理 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,用于指示在删除虚拟机实例时是否自动删除启动磁盘。
    NUM_VCPU vCPU 的数量。支持的 vCPU 数量上限为 192。
    MEMORY 内存大小,例如 8G。内存大小上限为 1 TB。

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

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

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

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

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

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

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

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

   kubectl --kubeconfig MANAGEMENT_API_SERVER \
       apply -n PROJECT -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 管理 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 \
       apply -n PROJECT -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 管理 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 地址