カスタマイズしたブートディスクを作成する

このドキュメントでは、Google Distributed Cloud(GDC)エアギャップで仮想マシン(VM)のカスタム ブートディスクを作成する手順について説明します。

VM インスタンスを作成すると、Distributed Cloud はデフォルト構成でブート永続ディスクを自動的に作成します。また、VM 用のブートディスクも作成する必要があります。公開イメージまたはカスタム イメージを使用できます。

インスタンスに追加のデータ ストレージ ディスクが必要な場合は、永続ディスクを VM に追加します。

このドキュメントは、VM のカスタマイズされたブートディスクを作成するプラットフォーム管理者またはアプリケーション オペレーター グループのデベロッパーを対象としています。詳細については、GDC エアギャップ ドキュメントの対象読者をご覧ください。

始める前に

gdcloud コマンドライン インターフェース(CLI)コマンドを使用するには、gdcloud CLI をダウンロード、インストール、構成していることを確認してください。Distributed Cloud のすべてのコマンドは gdcloud または kubectl CLI を使用し、オペレーティング システム(OS)環境を必要とします。

kubeconfig ファイルのパスを取得する

Management API サーバーに対してコマンドを実行するには、次のリソースが必要です。

  1. Management API サーバーの kubeconfig ファイルがない場合は、ログインして生成します。

  2. これらの手順では、MANAGEMENT_API_SERVER を Management API サーバーの kubeconfig ファイルのパスに置き換えます。

IAM ロールをリクエストする

IAM プロジェクト管理者に連絡して、プロジェクトに対する次のロールをリクエストしてください。

  • 仮想マシン プロジェクト管理者(project-vm-admin): プロジェクトの名前空間で標準 VM と高パフォーマンス VM を作成、変更、一覧表示、削除します。

  • プロジェクト閲覧者(project-viewer): プロジェクトの名前空間内のすべてのリソースを表示します。

すべての VM ロールは、VM が存在するプロジェクトの Namespace にバインドする必要があります。手順に沿ってアクセス権を確認します。

ブートディスクを作成する

このページで説明する手順に沿って、後で VM の作成に使用できるブートディスクを作成します。

イメージからブートディスクを作成する

インスタンスの作成とは別に、スタンドアロンのブート永続ディスクを作成し、後でそれをインスタンスにアタッチできます。このセクションでは、GDC 提供の OS イメージまたはカスタム OS イメージからブートディスクを作成する方法について説明します。

GDC 提供のイメージからブートディスクを作成する

GDC 提供のイメージを使用してブートディスクを作成する前に、使用可能なイメージのリストを確認します。次に、指定されたイメージを使用してブートディスクを作成します。

gdcloud

  1. 使用可能なすべてのイメージとその最小ディスクサイズを一覧表示します。

    gdcloud compute images list
    

    このコマンドには、Distributed Cloud が提供するイメージとカスタム イメージの両方が含まれます。vm-system Namespace でいずれかを選択します。

  2. Distributed Cloud が提供するイメージを選択して VM ディスクを作成します。

    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 以上にする必要があります。

カスタム イメージからブートディスクを作成する

カスタム イメージは、プロジェクトにのみ属します。カスタム イメージを使用して VM を作成するには、まず同じプロジェクトにカスタム イメージを作成する必要があります(まだ作成していない場合)。

プロジェクト内のカスタム イメージにアクセスするために必要な IAM ロールを設定します(まだ設定していない場合)。その後、次の手順に進みます。

gdcloud

  1. すべてのカスタム イメージと最小ディスクサイズを一覧表示します。

    gdcloud compute images list \
      --project=PROJECT
    
  2. VM ディスクを作成するカスタム イメージを選択します。

    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 以上にする必要があります。

次のステップ