クイックスタート: Anthos clusters on bare metal に VM を作成する

このクイックスタートでは、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 ランタイムを有効にできます。このカスタム リソースは、デフォルトでインストールされます。

  1. VMRuntime カスタム リソースを編集します。

    kubectl edit vmruntime
    
  2. 仕様で 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: rawqcow2 の 2 つのディスク イメージ形式値をサポートします。vmImageFormat を設定しない場合、Anthos VM ランタイムは raw ディスク イメージ形式を使用して VM を作成します。raw 形式によって、書き込み形式のコピーである qcow2 よりもパフォーマンスが向上しますが、より多くのディスクを使用する場合があります。VM のイメージ形式の詳細については、QEMU ドキュメントのディスク イメージのファイル形式をご覧ください。
  3. カスタム リソースをエディタに保存します。

  4. VMRuntime カスタム リソースが有効になっていることを確認します。

    kubectl describe vmruntime vmruntime
    

    VMRuntime カスタム リソースの詳細には、Status セクションが含まれています。VMRuntime.Status.Readytrue として表示されていれば、Anthos VM ランタイムが有効になり、機能します。

virtctl クライアント ツールをインストールする

VM を作成して管理するには、virtctl クライアント ツールをインストールします。

  1. virtctl クライアント ツールを kubectl プラグインとしてインストールします。

    export GOOGLE_APPLICATION_CREDENTIALS="PATH_TO_SERVICE_ACCOUNT_KEY/bm-gcr.json"
    sudo -E bmctl install virtctl
    

    認証情報を使用して認証を行い、virtctl クライアント ツールをダウンロードし、ローカルマシンの /usr/bin/kubectl-virt にインストールします。

  2. virtctl プラグインがインストールされていることを確認します。

    kubectl plugin list
    

    レスポンスに kubectl-virt が表示されている場合、プラグインは正常にインストールされています。

    kubectl-virt が表示されない場合は、前の bmctl install コマンドの出力にある install-virtctl.log ファイル(bmctl-workspace/log/install-virtctl-[date]/install-virtctl.log など)を確認してください。

VM を作成

このクイックスタートでは、公開 VM イメージとデフォルトの認証情報を使用する VM を作成します。

  1. クラスタに 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 クライアント ツールの最新バージョンを使用していることを確認してください。詳細については、Anthos VM ランタイムの既知の問題をご覧ください。

  2. VM の作成には数分かかることがあります。kubectl コマンドで VM のステータスを確認します。

    kubectl get gvm
    

    次の出力例では、Running 状態の VM を示します。

    NAME         STATUS    AGE   IP
    vm-sample1   Running   64s   192.168.2.124
    

VM に接続する

VM の実行中、VM のコンソールに接続します。

  1. コンソールから VM にアクセスするには、kubectl を使用します。

    kubectl virt console VM_NAME
    
  2. プロンプトが表示されたら、VM を作成する際に指定したユーザー認証情報を入力します。

  3. VM のコンソールに正常に接続したら、VM のセッションとコンソールを終了します。

    Ctrl + ]
    

クリーンアップ

このクイックスタートで作成したリソースをクリーンアップするには、次の手順を行います。

  1. VM と関連する DataVolume を削除するには、kubectl を使用します。

    kubectl virt delete vm VM_NAME --all
    

次のステップ