Google Distributed Cloud 上の VM ランタイムの概要

Google Distributed Cloud 上の VM ランタイムは、GKE on Bare Metal で仮想マシンベースのワークロードを実行するための重要なコンポーネントです。

GDC 上の VM ランタイムとは

GDC 上の VM ランタイムは、GKE on Bare Metal の一部であり、コンテナを実行するのと同じ方法で Kubernetes 上で VM を実行できます。GDC 上の VM ランタイムを使用することで、新しいコンテナベースのアプリケーションを開発および実行しながら、既存の VM ベースのワークロードを実行することもできます。GDC 上の VM ランタイムは、別の仮想化環境のハイパーバイザに似ています。

GDC 上の VM ランタイムを使用すると、VM の状態の表示と管理、監査ログやコンソールログを収集ができます。GDC 上の VM ランタイムは、他の仮想化環境で使用される管理コンソール ツールのように機能します。

GDC 上の VM ランタイムを使用するために、既存の VM ベースのワークロードをモダナイズまたはアップグレードする必要はありません。VM は、他の仮想化環境と同様に実行されますが、GKE on Bare Metal クラスタのアプリケーションに対する単一ワークフローやプロセスのメリットがあります。そうしたい場合は、これらの VM ベースのワークロードをコンテナに移行し、同じ GKE Enterprise 管理ツールを引き続き使用できます。

利点

GDC 上の VM ランタイムには、次の利点があります。

  • コンテナを使用する場合と同様に、VM リソースをプログラムによって使用できます。
  • コンテナと VM 全体でリソースを効率的に使用できます。
  • VM とコンテナの管理と運用を統合できます。
  • 新しいコンテナ化されたアプリケーションと従来の VM ベースアプリとの間のトラフィックを一元的に可視化して制御する。
  • クラウドやコンテナ化されたアプリへの移行の簡素化。

GDC 上の VM ランタイムは、GKE on Bare Metal 上で VM を移行するか、新しい VM を構築するのに役立ちます。

GDC 上の VM ランタイムと KubeVirt の違い

GDC 上の VM ランタイムは、KubeVirt オープンソース プロジェクト上に構築されています。Kubevirt は Kubernetes 専用に構築されており、宣言型 API モデルに従って Kubernetes リソースモデル、カスタム リソース定義、オペレーターを使用します。GDC 上の VM ランタイムでは、Kubevirt を GKE on Bare Metal に統合し、一貫した方法でアプリケーションを管理します。このセクションでは、KubeVirt で利用できない GDC 上の VM ランタイムの主な機能の概要をいくつか説明します。

Lifecycle

GKE Enterprise プラットフォームの機能を活用する GDC 上の VM ランタイムは、GKE Enterprise プラットフォームと完全に統合されています。GDC 上の VM ランタイムは、CLI コマンド、API、Google Cloud コンソールを使用して、インストール、アップグレード、アンインストールできます。互換性のあるストレージで使用する場合、GKE クラスタのアップグレードには、VM ワークロードの中断を最小限に抑えるために、ホスト間での VM ワークロードのライブ マイグレーションプレビュー)が含まれます。

クラウドを利用した管理操作環境

GDC 上の VM ランタイムは、オンプレミスでのインストールについてのクラウド同様のエクスペリエンスを提供します。この操作環境には、次に挙げるクラウドのような新しい基本要素が含まれています。

ストレージ

GDC 上の VM ランタイムは、クラスタ内の StorageClass ごとにストレージ プロファイル オブジェクト StorageProfile を自動的に生成します。この新しいプロファイル オブジェクトを使用すると、1 つの場所から、VM の StorageClass プロパティaccessModevolumeMode など)を構成できます。

複数のディスクを VM に接続できます。既存のディスクを接続することも、新しいディスクを作成して接続することも可能です。新しい VirtualMachineDisk カスタム リソースを使用すると、バンドルされた Containerized Data Importer(CDI)を使用して、空のディスクや、既存のイメージからディスクを作成できます。CDI を使用すると、認証情報で保護された Cloud Storage からイメージを pull することもできます。

ネットワーキング

GDC 上の VM ランタイムは、KubeVirt のデフォルトの pod-network サービスを拡張し、本番環境 VM ワークロードにより適したネットワーキング オプションを提供します。GDC 上の VM ランタイムは、Container Network Interface(CNI)フレームワークに基づく既存のネットワーク スタックを拡張します。GDC 上の VM ランタイムでは、Network オブジェクトが追加され、Kubernetes で仮想スイッチに似た機能が有効になります。ネットワーク プラグインは Kubernetes でも使用できますが、それには、独自のインストール、ライフサイクル、管理が必要です。GDC 上の VM ランタイムを使用すると、すぐに使用できる VM によって、VLAN タグや外部 DHCP のサポートなど、複数のレイヤ 2 ネットワーク インターフェースとやり取りできます。GDC 上の VM ランタイムでは、インターフェース オブジェクトも導入されます。これにより、VM を再起動、移行、再作成しても、IP アドレスと MAC アドレスの両方を維持できます。新しいネットワーク スタックも NetworkPolicy と統合されるため、Kubernetes プリミティブを使用して VM 間のレイヤ 4 トラフィックを制御できます。

オブザーバビリティ

GDC 上の VM ランタイムは、Google Cloud コンソールで VM のオブザーバビリティを自動的にサポートします。GKE クラスタと GDC 上の VM ランタイムのロギングに加え、VM シリアル コンソールのログが Cloud Logging に自動的にストリーミングされます。VM のログは、コンテナログとともにログ エクスプローラで表示できます。VM の CPU、メモリ、ディスク、ネットワークの指標を、Google Cloud コンソールで確認できます。また、使い慣れた Google Cloud サービスを使用して、ダッシュボード、アラート、通知との統合を実装することもできます。

管理

GDC 上の VM ランタイムのほとんどの機能は、コマンドライン、API、Google Cloud コンソールから使用できます。この柔軟な方法によって、複数のデベロッパーと運用上のスタイルがサポートされます。GKE Enterprise のスタック、Config Sync、Policy Controller の機能を利用することで、GitOps の手法と詳細なポリシーの両方を実装することもできます。また、virtctl などの KubeVirt ツールも、GDC 上の VM ランタイムの追加機能をサポートするように拡張されています。

GPU のサポート

GDC 上の VM ランタイムを使用すると、VM でサポートされている NVIDIA GPU カードを有効にして、ML やその他の特殊なワークロードを利用できます。

使ってみる

GDC 上の VM ランタイムの使用を開始するには、次のドキュメントをご覧ください。