このクイックスタートでは、Anthos VM ランタイムを使用して、Anthos clusters on bare metal に仮想マシン(VM)を作成する方法について説明します。Anthos VM ランタイムは、KubeVirt を使用してクラスタ上の VM をオーケストレートし、均一な開発環境で VM ベースのアプリとワークロードを操作できるようにします。
準備
このクイックスタートの内容を最後まで行うには、Anthos clusters on bare metal バージョン 1.12(anthosBareMetalVersion: 1.12
)以降にアクセスする必要があります。ワークロードを実行可能な、どのクラスタタイプでも使用できます。必要に応じて、Compute Engine の Anthos clusters on bare metal を試すか、クラスタ作成の概要をご覧ください。
Anthos VM ランタイムを有効にする
Anthos VM ランタイムは、Anthos clusters on bare metal バージョン 1.10 以降に自動的にインストールされますが、デフォルトでは無効になっています。Anthos clusters on bare metal で VM リソースを実行するには、その前に、Anthos VM ランタイムを有効にする必要があります。
bmctl
バージョン 1.11 以降の Anthos clusters on bare metal では、bmctl
コマンドライン ツールを使用できます。
ランタイムを有効にするには、
bmctl
ツールを使用します。bmctl enable vmruntime --kubeconfig KUBECONFIG_PATH
クラスタの kubeconfig ファイルへのパスを指定します。Anthos clusters on bare metal は、クラスタの作成時に管理ワークステーションに kubeconfig ファイルを生成します。デフォルトでは、パスは
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
です。Anthos VM ランタイムがすでに有効になっている場合は、コマンドでエラーが返されます。
カスタム リソース
Anthos clusters on bare metal バージョン 1.10 以降では、カスタム リソース定義を使用して Anthos VM ランタイムを有効にできます。このカスタム リソースはデフォルトでインストールされます。
VMRuntime
カスタム リソースを編集します。kubectl edit vmruntime
仕様に
enabled:true
を設定します。apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: enabled: true # useEmulation defaults to "false" if not set. useEmulation: true # vmImageFormat defaults to "qcow2" if not set. vmImageFormat: qcow2
前述の
spec
セクションでは、次の値を設定できます。enabled
: true に設定して Anthos VM ランタイムを有効にします。useEmulation
: ノードがハードウェア仮想化をサポートしていない場合や、それが不明な場合は、値を true に設定します。使用可能な場合、ハードウェア仮想化は、ソフトウェア エミュレーションよりもパフォーマンスが優れています。指定しない場合、useEmulation
フィールドはデフォルトでfalse
になります。vmImageFormat
:raw
とqcow2
の 2 つのディスク イメージ形式値をサポートします。vmImageFormat
を設定しない場合、Anthos VM ランタイムではraw
ディスク イメージ形式を使用して VM を作成します。raw
形式によって、書き込み形式のコピーであるqcow2
よりもパフォーマンスが向上しますが、より多くのディスクを使用する場合があります。VM のイメージ形式の詳細については、QEMU ドキュメントのディスク イメージのファイル形式をご覧ください。
カスタム リソースをエディタに保存します。
VMRuntime
カスタム リソースが有効であることを確認します。kubectl describe vmruntime vmruntime
VMRuntime
カスタム リソースの詳細には、Status
セクションが含まれています。VMRuntime.Status.Ready
がtrue
として表示されていれば、Anthos VM ランタイムが有効になり、機能します。
virtctl
クライアント ツールをインストールする
VM を作成して管理するには、virtctl クライアント ツールをインストールします。
virtctl
クライアント ツールをkubectl
プラグインとしてインストールします。export GOOGLE_APPLICATION_CREDENTIALS="PATH_TO_SERVICE_ACCOUNT_KEY/bm-gcr.json" sudo -E bmctl install virtctl
認証情報を使用して認証を行い、
virtctl
クライアント ツールをダウンロードし、ローカルマシンの/usr/bin/kubectl-virt
にインストールします。virtctl
プラグインがインストールされていることを確認します。kubectl plugin list
レスポンスに
kubectl-virt
が表示されている場合は、プラグインは正常にインストールされています。kubectl-virt
が表示されない場合は、前のbmctl install
コマンドの出力にあるinstall-virtctl.log
ファイル(bmctl-workspace/log/install-virtctl-[date]/install-virtctl.log
など)を確認してください。
VM を作成する
このクイックスタートでは、kubectl
CLI を使用して、公開 VM イメージとデフォルトの認証情報を使用する VM を作成します。
クラスタに VM を作成します。
virtctl
プラグインはkubectl
コマンドで使用されます。kubectl virt create vm VM_NAME \ --image ubuntu20.04 \ --configure-initial-password USERNAME:PASSWORD
このコマンドは、local-shared ストレージ クラスを使用して、ReadWriteOnce モードで、Ubuntu 20.04 VM と、デフォルトの 2 CPU、4Gi メモリ、20Gi ブートディスクを作成します。次の値を置き換えます。
VM_NAME
: VM の名前。 VM 名に使用できるのは、英小文字、数字、「-」のみです。先頭と末尾には英数字を指定する必要があります。長さは 63 文字以下にしてください。詳細については、Kubernetes ドキュメントの RFC 1123 ラベル名をご覧ください。USERNAME
: VM 上に作成するアカウントのユーザー名。PASSWORD
: ユーザー アカウントのパスワード。
CLI パラメータに関するエラーが表示された場合は、クラスタのバージョンが
1.11.1
以降であり、virtctl
クライアント ツールの最新バージョンを使用していることを確認してください。CLI エラーの詳細については、コンソール ログをご覧ください。ユーザー名とパスワードのルールについては、ゲスト オペレーティング システム(OS)のドキュメントをご覧ください。想定どおりに機能しない場合は、Anthos VM ランタイムの既知の問題を確認してください。VM の作成には数分かかることがあります。
kubectl
コマンドで VM のステータスを確認します。kubectl get gvm
次の出力例では、
Running
状態の VM を示します。NAME STATUS AGE IP vm-sample1 Running 64s 192.168.2.124
VM に接続する
VM が動作している場合は、VM のコンソールに接続します。
コンソールから VM にアクセスするには、
kubectl
を使用します。kubectl virt console VM_NAME
プロンプトが表示されたら、VM を作成する際に指定したユーザー認証情報を入力します。
VM のコンソールに正常に接続したら、VM のセッションとコンソールを終了します。
Ctrl + ]
クリーンアップ
このクイックスタートで作成したリソースをクリーンアップするには、次の手順を行います。
VM と関連する DataVolume を削除するには、
kubectl
を使用します。kubectl virt delete vm VM_NAME --all
次のステップ
- Anthos clusters on bare metal 内の VM の電源状態を管理する。
- ベアメタル版 Anthos クラスタで VM を編集する
- Anthos clusters on bare metal の VM コンソールのログを表示する。