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

仮想マシン(VM)インスタンスを作成する場合は、その VM 用のブートディスクも作成する必要があります。公開イメージまたはカスタム イメージを使用できます。VM インスタンスを作成すると、GDC によってブート永続ディスクが自動的に作成されます。インスタンスに追加のデータ ストレージ ディスクが必要な場合は、永続ディスクを VM に追加します。

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

始める前に

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

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

Management API サーバーに対してコマンドを実行するには、次のリソースがあることを確認します。

  1. Management API サーバー名を確認するか、プラットフォーム管理者(PA)にサーバー名を確認します。

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

  3. この手順では、パスを使用して MANAGEMENT_API_SERVER{"</var>"}} を置き換えます。

権限とアクセス権をリクエストする

このページに記載されているタスクを実行するには、VM ディスクへのアクセス権が必要です。次の手順に沿って、確認するか、プロジェクト IAM 管理者に VM が存在するプロジェクトの Namespace でプロジェクト VirtualMachine 管理者(project-vm-admin)ロールを割り当ててもらいます。

GDC コンソールまたは gdcloud CLI を使用する VM オペレーションの場合は、プロジェクト IAM 管理者に、プロジェクトの VirtualMachine 管理者ロールとプロジェクト閲覧者(project-viewer)ロールの両方を割り当てるよう依頼します。

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

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

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

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

gdcloud

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

    gdcloud compute images list
    

    このコマンドには、GDC エアギャップ アプライアンスで提供されるイメージとカスタム イメージの両方が含まれます。vm-system Namespace のいずれかを選択します。

  2. GDC エアギャップ アプライアンスで提供されるイメージを選択して、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 \
        get virtualmachineimages.virtualmachine.gdc.goog --namespace vm-system
    
  2. 特定の GDC 提供イメージの minimumDiskSize を取得します。作成されたカスタマイズされたブートディスクのサイズは、minimumDiskSize 以上にする必要があります。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      get virtualmachineimages.virtualmachine.gdc.goog --namespace vm-system \
      IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}'
    
  3. VirtualMachineDisk オブジェクトを作成します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER apply -n PROJECT -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 画像の名前。

kubectl

  1. すべてのカスタム イメージを一覧表示する:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimages.virtualmachine.gdc.goog --namespace PROJECT
    
  2. 特定のカスタマイズされたイメージの minimumDiskSize を取得します。作成されたカスタマイズされたブートディスクのサイズは、minimumDiskSize 以上にする必要があります。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      get virtualmachineimages.virtualmachine.gdc.goog --namespace vm-system \
      IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}'
    
  3. VirtualMachineDisk オブジェクトを作成します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply --namespace PROJECT -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 以上にする必要があります。

ブートディスクを交換するには、ブートディスクを交換するをご覧ください。