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

このドキュメントでは、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 サーバーの kubeconfig ファイルのパスを使用して、この手順の MANAGEMENT_API_SERVER を置き換えます。

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

プロジェクトに対する次のロールをリクエストするには、プロジェクト IAM 管理者にお問い合わせください。

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

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

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

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

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

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

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

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

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

gdcloud

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

    gdcloud compute images list
    

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

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

次のステップ