Google Distributed Cloud 上の VM ランタイムは、Google Distributed Cloud の接続されたデプロイで仮想マシンベースのワークロードを実行するための重要なコンポーネントです。
GDC 上の VM ランタイムとは
GDC 上の VM ランタイムは、Distributed Cloud connected の一部であり、コンテナを実行するのと同じ方法で Kubernetes 上で VM を実行できます。GDC 上の VM ランタイムを使用することで、新しいコンテナベースのアプリケーションを開発および実行しながら、既存の VM ベースのワークロードを実行することもできます。 GDC 上の VM ランタイムは、別の仮想化環境のハイパーバイザに似ています。
GDC 上の VM ランタイムを使用すると、VM の状態の表示と管理、監査ログやコンソールログの収集ができます。GDC 上の VM ランタイムは、他の仮想化環境で使用されている管理コンソール ツールのように機能します。
GDC 上の VM ランタイムを使用するために、既存の VM ベースのワークロードをモダナイズまたはアップグレードすることは、必須ではありません。VM は他の仮想化環境と同じように動作しますが、クラスタ内のアプリケーションに対して、一連のワークフローやプロセスを利用できます。その場合、これらの VM ベースのワークロードをコンテナに移行し、同じ管理ツールを引き続き使用することもできます。
利点
GDC 上の VM ランタイムには、次の利点があります。
- コンテナを使用する場合と同様に、VM リソースをプログラムによって使用できます。
- コンテナと VM 間でリソースを効率的に使用できます。
- VM とコンテナを統合的に管理、運用できます。
- 新しいコンテナ化されたアプリケーションと従来の VM ベースアプリとの間のトラフィックを一元的に可視化して制御できます。
- クラウドやコンテナ化されたアプリへの移行の簡素化。
GDC 上の VM ランタイムは、Distributed Cloud connected クラスタ上での VM の移行や新しい VM の構築に役立ちます。
GDC 上の VM ランタイムと KubeVirt の違い
GDC 上の VM ランタイムは、KubeVirt オープンソース プロジェクト上に構築されています。KubeVirt は Kubernetes 専用に構築されており、宣言型 API モデルに従って Kubernetes リソースモデル、カスタム リソース定義、オペレーターを使用します。GDC 上の VM ランタイムは、KubeVirt を Google Distributed Cloud に統合し、アプリケーションを管理する一貫した方法を提供します。このセクションでは、KubeVirt で利用できない GDC 上の VM ランタイムの主な機能の一部について説明します。
ライフサイクル
Google Kubernetes Engine の機能を活用する GDC 上の VM ランタイムは、 と完全に統合されています Google Cloud。
クラウドを利用した管理操作環境
GDC 上の 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 コンソールから使用できます。柔軟性のあるアプローチで、複数のデベロッパーと運用スタイルがサポートされています。プロダクトの Config Sync
と Policy Controller を使用して、GitOps
の手法ときめ細かいポリシーの両方を実装することもできます。 Google Cloud また、virtctl などの KubeVirt ツールも、GDC 上の VM ランタイムの追加機能をサポートするように拡張されています。
GPU のサポート
GDC 上の VM ランタイムを使用すると、VM でサポートされている NVIDIA GPU カードを有効にして、ML などの特殊なワークロードを利用できます。
始める
GDC 上の VM ランタイムの使用を開始するには、次のドキュメントをご覧ください。