创建自定义启动磁盘

本文档介绍了在 Google Distributed Cloud (GDC) 气隙环境中为虚拟机 (VM) 创建自定义启动磁盘的步骤。

当您创建虚拟机实例时,Distributed Cloud 会自动创建具有默认配置的永久性启动磁盘。您还必须为虚拟机创建启动磁盘。您可以使用公共映像或自定义映像。

如果实例需要额外的数据存储磁盘,请向虚拟机添加永久性磁盘

本文档面向平台管理员或应用运维人员群组中为虚拟机创建自定义启动磁盘的开发者。如需了解详情,请参阅 GDC 气隙环境受众群体文档

准备工作

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

获取 kubeconfig 文件路径

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

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

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

申请 IAM 角色

请与您的项目 IAM 管理员联系,请求为您的项目授予以下角色:

  • Virtual Machine Project Admin (project-vm-admin):在项目命名空间中创建、修改、列出和删除标准虚拟机和高性能虚拟机。

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

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

创建启动磁盘

执行本页中所述的过程创建稍后可用于创建虚拟机的启动磁盘。

使用映像创建启动磁盘

除了创建实例外,您还可以创建独立的永久性启动磁盘,然后将其挂接到实例。本部分介绍如何通过 GDC 提供的操作系统映像自定义操作系统映像创建启动磁盘。

使用 GDC 提供的映像创建启动磁盘

在使用 GDC 提供的映像创建启动磁盘之前,请先查看可用映像的列表。然后使用提供的映像创建启动磁盘。

gdcloud

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

    gdcloud compute images list
    

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

  2. 选择 Distributed Cloud 提供的映像来创建虚拟机磁盘:

    gdcloud compute disks create BOOT_DISK_NAME \
      --project=PROJECT \
      --size=DISK_SIZE \
      --image=IMAGE_NAME \
      --image-project=vm-system
    

    使用以下定义替换变量:

    变量定义
    BOOT_DISK_NAME 启动磁盘的名称。
    PROJECT 要在其中创建启动磁盘的 GDC 项目。
    DISK_SIZE 启动磁盘的大小必须至少为映像的 minimumDiskSize
    IMAGE_NAME 图片的名称。

kubectl

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

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimages.virtualmachine.gdc.goog
    
  2. 获取特定 GDC 提供映像的 minimumDiskSize。创建的自定义启动磁盘的大小必须至少为 minimumDiskSize

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimages.virtualmachine.gdc.goog IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}'
    
  3. 创建 VirtualMachineDisk 对象:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: BOOT_DISK_NAME
    spec:
      source:
        image:
          name: IMAGE_NAME
          namespace: vm-system
      size: DISK_SIZE
    EOF
    

    使用以下定义替换变量,

    变量定义
    MANAGEMENT_API_SERVER Management API 服务器 kubeconfig 文件。
    IMAGE_NAME 图片的名称。
    PROJECT 要在其中创建启动磁盘的 GDC 项目。
    BOOT_DISK_NAME 启动磁盘的名称。
    DISK_SIZE 启动磁盘的大小必须至少为映像的 minimumDiskSize

使用自定义映像创建启动磁盘

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

如果您尚未设置必要的 IAM 角色,请先设置这些角色,以便访问项目中的自定义映像。然后继续按照这些说明操作。

gdcloud

  1. 列出所有自定义映像及其最小磁盘大小:

    gdcloud compute images list \
      --project=PROJECT \
    
  2. 选择一个自定义映像来创建虚拟机磁盘:

    gdcloud compute disks create BOOT_DISK_NAME \
      --project=PROJECT \
      --size=DISK_SIZE \
      --image=IMAGE_NAME \
      --image-project=PROJECT
    

    使用以下定义替换变量:

    变量定义
    BOOT_DISK_NAME 启动磁盘的名称。
    PROJECT 要在其中创建启动磁盘的 GDC 项目。
    DISK_SIZE 启动磁盘的大小必须至少为映像的 minimumDiskSize
    IMAGE_NAME 图片的名称。

API

  1. 列出所有自定义映像

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachineimages.virtualmachine.gdc.goog
    
  2. 获取特定自定义映像的 minimumDiskSize。创建的自定义启动磁盘的大小必须至少为 minimumDiskSize

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimages.virtualmachine.gdc.goog IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}'
    
  3. 创建 VirtualMachineDisk 对象:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: BOOT_DISK_NAME
    spec:
      source:
        image:
          name: IMAGE_NAME
          namespace: PROJECT
      size: DISK_SIZE
    EOF
    

    使用以下定义替换变量:

    变量定义
    MANAGEMENT_API_SERVER Management API 服务器 kubeconfig 文件。
    IMAGE_NAME 列出所有自定义映像命令中选择的映像的名称。
    PROJECT 要在其中创建启动磁盘的 GDC 项目。
    BOOT_DISK_NAME 启动磁盘的名称。
    DISK_SIZE 启动磁盘的大小必须至少为映像的 minimumDiskSize

接下来怎么做?