VM を起動して停止する

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

アプリケーションのライフサイクルをサポートするために、VM を停止、起動、再起動できます。たとえば、割り当てられた仮想集中処理ユニット(vCPU)の数や、VM に割り当てられたメモリ容量を変更したい場合などです。構成を編集する前に VM を停止する必要があります。完了したら、変更を適用するために電源を入れ直す必要があります。

このドキュメントは、Distributed Cloud 環境で VM インスタンスを起動、停止、再起動する必要があるプラットフォーム管理者またはアプリケーション オペレーター グループの開発者を対象としています。詳細については、 GDC エアギャップ ドキュメントの対象読者をご覧ください。

始める前に

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

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

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

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

  2. Management API サーバーの kubeconfig ファイルのパスを使用して、この手順の MANAGEMENT_API_SERVER を置き換えます。

VM の起動時間を最小限に抑える場合は、VM を起動する前に VM の起動時間を最小限に抑える の手順に沿って操作してください。

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

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

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

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

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

VM を停止する

仮想マシン(VM)を停止すると、ハイパーバイザはインスタンスに関連付けられているすべてのリソースの割り当てを解除します。VM をシャットダウンします。

GDC コンソールまたは kubectl を使用して、実行状態の VM を停止します。

コンソール

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

  2. VM のリストで、停止する実行中の VM のチェックボックスをオンにします。

  3. [停止] をクリックします。

  4. 確認ダイアログで [停止] をクリックします。

gdcloud

VM を停止するには:

gdcloud compute instances stop VM_NAME \
  --project PROJECT
  • VM_NAME は VM の名前に置き換えます。
  • PROJECT は、VM が存在する GDC プロジェクトの名前に置き換えます。

kubectl

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

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       -n PROJECT \
       edit virtualmachines.virtualmachine.gdc.goog VM_NAME
    
  2. VM の specrunningState フィールドを探し、フィールドの値を Stopped に変更します。runningStatespec にない場合は、runningStatespec に追加して、値を Stopped に設定します。

    spec:
       runningState: Stopped
    
  3. VM のステータスを確認します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       -n PROJECT \
       get virtualmachines.virtualmachine.gdc.goog VM_NAME
    

    上記の変数には次の定義を使用します

    変数定義
    MANAGEMENT_API_SERVER_KUBECONFIGManagement API サーバーの kubeconfig ファイル。
    VM_NAMEVM の名前。
    PROJECTVM のプロジェクト名。

VM を起動する

コンソールまたは kubectl を使用して、停止状態から VM を起動します。

コンソール

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

  2. VM のリストで、起動する停止した VM のチェックボックスをオンにします。

  3. [開始] をクリックします。

  4. 確認ダイアログで [開始] をクリックします。

gdcloud

VM を起動するには:

gdcloud compute instances start VM_NAME --project PROJECT
  • VM_NAME は VM の名前に置き換えます。
  • PROJECT は、VM が存在する GDC プロジェクトの名前に置き換えます。

kubectl

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

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      -n PROJECT \
      edit virtualmachines.virtualmachine.gdc.goog VM_NAME
    
  2. VM の specrunningState フィールドを探し、フィールドの値を Running に変更します。

    spec:
       runningState: Running
    
  3. VM のステータスを確認します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      -n PROJECT \
      get virtualmachines.virtualmachine.gdc.goog VM_NAME
    

    サンプルコードの変数には次の定義を使用します。

    変数定義
    MANAGEMENT_API_SERVER_KUBECONFIGManagement API サーバーの kubeconfig ファイル。
    MANAGEMENT_API_SERVER_NAMEManagement API サーバーの名前。
    VM_NAMEVM の名前。
    PROJECTVM のプロジェクト名。

VM を再起動する

VM を再起動すると、マシンは初期状態にリセットされ、マシンのメモリの内容が消去されます。

コンソールまたは kubectl を使用して、実行状態の VM を再起動します。

コンソール

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

  2. VM のリストで、再起動する実行中の VM のチェックボックスをオンにします。

  3. [リセット] をクリックします。

  4. 確認ダイアログで [リセット] をクリックします。

gdcloud

VM をリセットするには:

gdcloud compute instances reset VM_NAME --project PROJECT
  • VM_NAME は VM の名前に置き換えます。
  • PROJECT は、VM が存在する GDC プロジェクトの名前に置き換えます。

kubectl

  1. クライアント証明書と鍵データ、Management API サーバーを取得します。 次の手順でこれらの値を使用します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      config view --raw -o \
      jsonpath='{.users[?(@.name =="MANAGEMENT_API_SERVER_NAME-admin")].user.client-certificate-data}' \
      | base64 -d > cert
    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      config view --raw -o \
      jsonpath='{.users[?(@.name == "MANAGEMENT_API_SERVER_NAME-admin")].user.client-key-data}' \
      | base64 -d > key
    export APISERVER=`kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       config view --raw -o \
       jsonpath='{.clusters[?(@.name == "MANAGEMENT_API_SERVER_NAME")].cluster.server}'`
    
  2. wget コマンドを使用して VM を再起動する API リクエストを行い、前の手順で取得した証明書と鍵を指定します。

    wget --method=PUT -O- \
      --no-check-certificate \
      --certificate cert \
      --private-key key \
      --content-on-error=on \
      $APISERVER/apis/virtualmachineoperations.gdc.goog/v1/namespaces/PROJECT/virtualmachines/VM_NAME/restart
    
  3. VM のステータスを確認します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      -n PROJECT \
      get virtualmachines.virtualmachine.gdc.goog VM_NAME
    

    サンプルコードの変数には次の定義を使用します 。

    変数定義
    MANAGEMENT_API_SERVER_KUBECONFIGManagement API サーバーの kubeconfig ファイル。
    MANAGEMENT_API_SERVER_NAMEManagement API サーバーの名前。
    VM_NAMEVM の名前。
    PROJECTVM のプロジェクト名。