VM プロパティを更新する

このドキュメントでは、Google Distributed Cloud(GDC)エアギャップ環境で仮想マシン(VM)インスタンスのプロパティを更新する方法について説明します。

VM プロパティを更新して、インスタンスで実行されているワークロードの変化する要件に合わせて仮想インフラストラクチャを調整できます。vCPU や物理メモリ(RAM)を増やしたり、減らしたりして、プロジェクト内の他の場所にリソースを再分配できます。

VM を破棄して再構築し、データを移行するのではなく、プロパティを更新することもできます。通常、プロパティの更新には迅速な再起動が必要ですが、この方法を使用すると、構成時間を大幅に短縮できます。

このドキュメントは、Distributed Cloud 環境で 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 を作成、変更、一覧表示、削除します。

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

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

更新可能なプロパティ

変更できるのは、VM の spec にあるプロパティのみです。

更新可能なプロパティを表示する

GDC コンソールまたは kubectl を使用して、変更するプロパティを見つけます。

コンソール

  1. ナビゲーション メニューで、[仮想マシン] > [インスタンス] をクリックします。

  2. VM のリストで、VM 名をクリックしてプロパティを表示します。

  3. 編集可能なプロパティには、 [編集] アイコンが表示されます。

kubectl

  1. VM spec のプロパティのリストと、各プロパティに対応する有効な値を表示します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      explain virtualmachines.virtualmachine.gdc.goog.spec
    

    出力は次のようになります。

    KIND:     VirtualMachine
    VERSION:  virtualmachine.gdc.goog/v1
    
    RESOURCE: spec <Object>
    
    DESCRIPTION:
         Defines the specification of the Virtual Machine.
    
    FIELDS:
       compute      <Object>
         Specifies the CPU and Memory of the VM. CPU and Memory can be defined
         directly or through the VirtualMachineType. Changes to Compute require a
         reboot to take effect. Compute is immutable when the VM is in `Unknown`
         state.
    
       disks        <[]Object> -required-
         Specifies the list of disks attached to this vm. There must be exactly one
         boot disk. Changes to disk attachments require a reboot to take effect.
    
       ...
    
  2. 各プロパティのサブプロパティを再帰的に表示します。次の例は、compute サブプロパティと vcpus サブプロパティの戻り値を示しています。

    • このコマンド例では、compute サブプロパティのフィールドが返されます。

      kubectl --kubeconfig MANAGEMENT_API_SERVER \
        explain virtualmachines.virtualmachine.gdc.goog.spec.compute
      

      出力は次のようになります。

      KIND:     VirtualMachine
      VERSION:  virtualmachine.gdc.goog/v1
      
      RESOURCE: compute <Object>
      
      DESCRIPTION:
           Specifies the CPU and Memory of the VM. CPU and Memory can be defined
           directly or through the VirtualMachineType. Changes to Compute require a
           reboot to take effect. Compute is immutable when the VM is in `Unknown`
           state.
      
      FIELDS:
         memory       <>
           Specifies the amount of physical memory available to the instance. memory
           must have a minimum value of `1G`, and can be up to (including) `400G`.
      
         vcpus        <integer>
           Specifies the number of VCPUs that are available to the instance. Specify
           `vcpus` as an integer. This value must be a multiple of 2, with 2 as the
           minimum and 128 as the maximum allowed.
      
         ...
      
    • このコマンド例では、vcpus サブプロパティのフィールドが返されます。

      kubectl --kubeconfig MANAGEMENT_API_SERVER \
        explain virtualmachines.virtualmachine.gdc.goog.spec.compute.vcpus
      

      出力は次のようになります。

      KIND:     VirtualMachine
      VERSION:  virtualmachine.gdc.goog/v1
      
      FIELD:    vcpus <integer>
      
      DESCRIPTION:
           Specifies the number of VCPUs that are available to the instance. Specify
           `vcpus` as an integer. This value must be a multiple of 2, with 2 as the
           minimum and 128 as the maximum allowed.
      

すべてのプロパティは実行中の VM で更新できますが、変更を有効にするには VM の再起動が必要になることがよくあります。

次のプロパティを更新するには、変更を有効にするために VM を再起動する必要があります。

次のプロパティの更新はすぐに有効になります。

  • guestEnvironment
  • runningState

VM プロパティを更新する

GDC コンソールまたは kubectl を使用して VM プロパティを更新します。

コンソール

  1. ナビゲーション メニューで、[仮想マシン] > [インスタンス] をクリックします。

  2. VM のリストで、VM 名をクリックしてプロパティを表示します。

  3. 編集するプロパティの横にある [編集] をクリックして、 変更を加えます。

  4. ブートディスクを置き換えるか、新しいディスクを追加する場合は、 ブートディスクを置き換える またはVM にディスクを追加するをご覧ください。

  5. [保存] をクリックします。

kubectl

  1. 次のコマンドを実行します。

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

    次の表で定義されているように、変数を置き換えます。

    変数定義
    MANAGEMENT_API_SERVERManagement API サーバーの kubeconfig ファイル。
    VM_NAMEVM の名前。
    PROJECTプロジェクト名。
  2. spec を編集して、更新可能なプロパティに必要なフィールドと値を更新します。

  3. ファイルを保存します。

  4. プロパティの更新で VM の再起動が必要な場合は、 VM を再起動する の手順に沿って VM を再起動します。