Google Distributed Cloud 上の VM ランタイムは、Google Distributed Cloud で仮想マシンベースのワークロードを実行するための重要なコンポーネントです。
GDC 上の VM ランタイムとは
GDC 上の VM ランタイムは、Google Distributed Cloud の一部であり、コンテナを実行するのと同じ方法で Kubernetes 上で VM を実行できます。GDC 上の VM ランタイムを使用することで、新しいコンテナベースのアプリケーションを開発、実行するとともに、既存の VM ベースのワークロードを実行することもできます。GDC 上の VM ランタイムは、別の仮想化環境のハイパーバイザに似ています。
GDC 上の VM ランタイムを使用すると、VM の状態の表示と管理、監査ログやコンソールログの収集ができます。GDC 上の VM ランタイムは、他の仮想化環境で使用されている管理コンソール ツールのように機能します。
GDC 上の VM ランタイムを使用するために既存の VM ベースのワークロードをモダナイズまたはアップグレードすることは、必須ではありません。VM は他の仮想化環境と同じように動作しますが、Google Distributed Cloud クラスタ内のアプリケーションに対して単一のワークフローやプロセスを利用できます。その場合、これらの VM ベースのワークロードをコンテナに移行し、同じ GKE Enterprise 管理ツールを引き続き使用することもできます。
利点
GDC 上の VM ランタイムには、次の利点があります。
- コンテナを使用する場合と同様に、VM リソースをプログラマティックに使用できます。
- コンテナと VM 間でリソースを効率的に使用できます。
- VM とコンテナを統合的に管理、運用できます。
- 新しいコンテナ化されたアプリケーションと従来の VM ベースアプリとの間のトラフィックを一元的に可視化して制御できます。
- クラウドやコンテナ化されたアプリへの移行を簡素化できます。
GDC 上の VM ランタイムは、Google Distributed Cloud 上での VM を移行や新しい VM の構築に役立ちます。
GDC 上の VM ランタイムと KubeVirt の違い
GDC 上の VM ランタイムは、KubeVirt オープンソース プロジェクト上に構築されています。Kubevirt は Kubernetes 専用に構築されており、宣言型 API モデルに従って Kubernetes リソースモデル、カスタム リソース定義、オペレーターを使用します。GDC 上の VM ランタイムは、Kubevirt を Google Distributed Cloud に統合し、アプリケーションを管理する一貫した方法を提供します。このセクションでは、KubeVirt で利用できない GDC 上の VM ランタイムの主な機能の一部について説明します。
ライフサイクル
GKE Enterprise プラットフォームの機能を活用する GDC 上の VM ランタイムは、GKE Enterprise プラットフォームと完全に統合されています。GDC 上の VM ランタイムは、CLI コマンド、API、Google Cloud コンソールを使用して、インストール、アップグレード、アンインストールできます。互換性のあるストレージで使用する場合、GKE クラスタのアップグレードには、VM ワークロードの中断を最小限に抑えるために、ホスト間での VM ワークロードのライブ マイグレーション(プレビュー)が含まれます。
クラウドを基盤とする管理機能
GDC 上の VM ランタイムは、オンプレミスでのインストールに関してクラウド同様のエクスペリエンスを提供します。この操作環境には、クラウドに類似した次に挙げるような新しい基本要素が含まれています。
VirtualMachineType
オブジェクトを使用すると、管理者は特定の CPU とメモリ構成で事前定義された VM タイプを作成できます。VirtualMachineDisk
オブジェクトとStorageProfile
オブジェクトにより、複数のディスクのサポートとStorageClass
プロパティの一元管理が実現されます。Network
オブジェクトを使用すると、Kubernetes の仮想スイッチに似た機能が有効になります。
ストレージ
GDC 上の VM ランタイムは、クラスタ内の各 StorageClass
に対してストレージ プロファイル オブジェクト StorageProfile
を自動的に生成します。この新しいプロファイル オブジェクトを使用すると、1 つの場所から、VM の StorageClass
プロパティ(accessMode
や volumeMode
など)を構成できます。
複数のディスクを 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 ランタイムの使用を開始するには、次のドキュメントをご覧ください。
- GDC 上の VM ランタイムを有効または無効にする
- クイックスタート: Google Distributed Cloud で VM を作成する
- GDC 上の VM ランタイムを使用する VM の電源状態を管理する
- GDC 上の VM ランタイムを使用する VM のコンソールログを表示する