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

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

Google Distributed Cloud 上の VM ランタイムとは

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

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

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

利点

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

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

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

Google Distributed Cloud 上の VM ランタイムと KubeVirt の違い

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

Lifecycle

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

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

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

ストレージ

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

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

ネットワーキング

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

オブザーバビリティ

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

管理

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

GPU のサポート

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

始める

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