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

Google Distributed Cloud 上の VM ランタイムは、Google Distributed Cloud(ソフトウェアのみ)の bare metal インストールで仮想マシンベースのワークロードを実行するための重要なコンポーネントです。

GDC 上の VM ランタイムとは

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

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

GDC 上の VM ランタイムを使用するために既存の VM ベースのワークロードをモダナイズまたはアップグレードすることは、必須ではありません。VM は他の仮想化環境と同じように動作しますが、クラスタ内のアプリケーションに対して単一のワークフローやプロセスを利用できます。準備ができたら、これらの VM ベースのワークロードをコンテナに移行し、同じ Google Kubernetes Engine(GKE)Enterprise エディションの管理ツールを引き続き使用できます。

利点

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

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

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

ストレージ

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 ランタイムの使用を開始するには、次のドキュメントをご覧ください。