アプリケーションのライフサイクルをサポートするために、VM を停止、起動、再起動できます。たとえば、割り当てられた仮想中央処理装置(vCPU)の数や、VM に割り当てられたメモリ容量を変更したい場合などです。構成を編集する前に、VM を停止する必要があります。完了したら、変更を適用するために電源を入れ直す必要があります。このページでは、このようなプロセスで VM を停止、起動、再起動する手順について説明します。
始める前に
gdcloud
コマンドライン インターフェース(CLI)コマンドを使用するには、gdcloud
CLI をダウンロード、インストール、構成していることを確認してください。Distributed Cloud のすべてのコマンドは gdcloud
または kubectl
CLI を使用し、オペレーティング システム(OS)環境が必要です。
kubeconfig ファイルのパスを取得する
Management API サーバーに対してコマンドを実行するには、次のリソースがあることを確認します。
Management API サーバーの kubeconfig ファイルがない場合は、ログインして生成します。
これらの手順では、Management API サーバーの kubeconfig ファイルのパスを使用して
MANAGEMENT_API_SERVER
を置き換えます。
VM の起動時間を最小限に抑える場合は、VM を起動する前に、VM の起動時間を最小限に抑える の手順に沿って操作します。
権限とアクセス権をリクエストする
このページに記載されているタスクを行うには、プロジェクトの VirtualMachine 管理者ロールが必要です。次の手順に沿って、確認するか、プロジェクト IAM 管理者に VM が存在するプロジェクトの Namespace でプロジェクト VirtualMachine 管理者(project-vm-admin
)ロールを割り当ててもらいます。
GDC コンソールまたは gdcloud CLI を使用する VM オペレーションの場合は、プロジェクト IAM 管理者に、プロジェクト仮想マシン管理者ロールとプロジェクト閲覧者(project-viewer
)ロールの両方を割り当てるよう依頼してください。
VM を停止する
仮想マシン(VM)を停止すると、ハイパーバイザはインスタンスに関連付けられているすべてのリソースの割り当てを解除します。VM をシャットダウンします。
GDC コンソールまたは kubectl
を使用して、実行状態の VM を停止します。
コンソール
ナビゲーション メニューで、[仮想マシン] > [インスタンス] をクリックします。
VM のリストで、停止する実行中の VM のチェックボックスをオンにします。
[停止] をクリックします。
確認ダイアログで [停止] をクリックします。
gdcloud
VM を停止するには:
gdcloud compute instances stop VM_NAME --project PROJECT
VM_NAME
は VM の名前で置き換えます。PROJECT
は、VM が存在する GDC プロジェクトの名前に置き換えます。
kubectl
次のコマンドを実行します。
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ edit virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
VM の
spec
でrunningState
フィールドを探し、フィールドの値をStopped
に変更します。runningState
がspec
に含まれていない場合は、runningState
をspec
に追加し、値をStopped
に設定します。spec: runningState: Stopped
VM のステータスを確認します。
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
上記の変数の定義を使用します。
変数 定義 MANAGEMENT_API_SERVER_KUBECONFIG
Management API サーバーの kubeconfig ファイル。 VM_NAME
VM の名前。 PROJECT
VM のプロジェクト名。
VM を起動する
コンソールまたは kubectl
を使用して、停止状態の VM を起動します。
コンソール
ナビゲーション メニューで、[仮想マシン] > [インスタンス] をクリックします。
VM のリストで、起動する停止済み VM のチェックボックスをオンにします。
[開始] をクリックします。
確認ダイアログで [開始] をクリックします。
gdcloud
VM を起動するには:
gdcloud compute instances start VM_NAME --project PROJECT
VM_NAME
は VM の名前で置き換えます。PROJECT
は、VM が存在する GDC プロジェクトの名前に置き換えます。
kubectl
次のコマンドを実行します。
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ edit virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
VM の
spec
でrunningState
フィールドを探し、フィールドの値をRunning
に変更します。spec: runningState: Running
VM のステータスを確認します。
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
サンプルコードでは、これらの変数の定義を使用します。
変数 定義 MANAGEMENT_API_SERVER_KUBECONFIG
Management API サーバーの kubeconfig ファイル。 MANAGEMENT_API_SERVER_NAME
Management API サーバーの名前。 NAMESPACE
VM Namespace。 VM_NAME
VM の名前。 PROJECT
VM のプロジェクト名。
VM を再起動する
VM を再起動すると、マシンは初期状態にリセットされ、マシンのメモリの内容はワイプされます。
コンソールまたは kubectl
を使用して、実行状態の VM を再起動します。
コンソール
ナビゲーション メニューで、[仮想マシン] > [インスタンス] をクリックします。
VM のリストで、再起動する実行中の VM のチェックボックスをオンにします。
[リセット] をクリックします。
確認ダイアログで [リセット] をクリックします。
gdcloud
VM をリセットするには:
gdcloud compute instances reset VM_NAME --project PROJECT
VM_NAME
は VM の名前で置き換えます。PROJECT
は、VM が存在する GDC プロジェクトの名前に置き換えます。
kubectl
クライアント証明書とキーデータ、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}'`
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
VM のステータスを確認します。
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT
サンプルコードでは、これらの変数の定義を使用します。
変数 定義 MANAGEMENT_API_SERVER_KUBECONFIG
Management API サーバーの kubeconfig ファイル。 MANAGEMENT_API_SERVER_NAME
Management API サーバーの名前。 NAMESPACE
VM Namespace。 VM_NAME
VM の名前。 PROJECT
VM のプロジェクト名。