最近、CNCFはKubeVirtをサンドボックスからインキュベーションプロジェクトレベルに昇格させた。KubeVirtを使うと、ユーザはKubernetesネイティブな方法でKubernetes上の仮想マシン処理を実行できる。
KubeVirtでは、仮想化の要件を持つ新たなアプリケーションの構築をサポートすることで、レガシーアプリケーションの移行ができるようになった。現在、KubeVirtベースの本番レベルのソリューションはArm、CIVO、CoreWeaveH3C、Kubermaticなどの複数の組織で展開されている。
KubeVirtは、ライブマイグレーション機能をサポートするようになった。その目的は、ベースとなるコンピューティングノードがメンテナンス中か、あるいは利用できない場合に仮想マシン上の処理を維持することである。単一のVM GPUへのアクセスに対して計算集約型の処理を高速化すると共に、CPUの固定化 (ピニング) のサポートとNUMAトポロジパススルーを提供している。データ保護に関する重要な考慮事項については、オフラインとオンラインのディスクスナップショットで対処している。
最近のリリースには、高性能ネットワーク向けのSR-IOVサポートと、仮想マシンに接続された複数のネットワークインターフェイス向けのMultusサポートが含まれている。宣言型のホストネットワーク設定をサポートする新たな追加機能により、KubeVirtコントロールプレーンと処理を無停止で更新できる。
KubeVirtは2017年1月にRedHatで設立され、そこにAmadeus、Apple、CloudFlare、Containership、Giant Swarm、Gitpod、IBM、Kubermatic、Lacoda、NEC、NVIDIA、SAP、Solidfire、SUSE、および個人の開発者からのコントリビュータが加わった。一定のリリース間隔を維持しながら30を超えるリリースを行っており、KubeVirtは、その機能を拡張するために他のさまざまなCNCFプロジェクトによって補完される。
上記に加えて、私たちはKube-OVNを使用したOpen Virtual Network(OVN)/Open vSwitch(OVS)ベースのネットワークファブリックという興味深いユースケースに出会った。これは、仮想化に関連するさまざまな機能に対するKubeVirtコミュニティの功績によるものである。
ベアメタルでの実行によって生じる課題と従来の仮想化の問題(ディスクインポート)に対処するために、KubeVirtにはさまざまなコンポーネントが用意されている。KubeVirt仮想化APIとランタイムによって、Kubernetesクラスタ内の仮想マシンを定義し、管理することができる。コンテナ化されたデータインポーターがあり、既存のディスクをインポートするために使われる。ホストネットワークを設定するために、クラスタネットワークアドオンオペレーターがある。ホストパスプロビジョナーを使うと、ユーザはローカルストレージを公開できる。KubeVirtのデプロイは、ハイパーコンバージドクラスタオペレーターによって簡単にできるようになる。
CNCFのCTOのChris Aniszczyk氏は、次のように述べている。
クラウドネイティブのモダナイゼーションプラクティスを採用する組織が増えるにつれ、Kubernetesは、ピュアコンテナの外部で別のタイプの処理が実行できるように拡張されていきます。KubeVirtによって、コンテナと別の処理タイプとを並べて、VMベースの処理を行うチームに対して、クラウドネイティブエコシステムにおけるギャップを埋めることができます。
Twitterの技術コミュニティも、リツイートによってKubeVirtの卒業に注目し、Chris氏からの発表ツイートに反応した。Veeamの製品戦略担当シニアテクノロジストでHashiCorp AmbassadorのAnthony Spiteri氏は、次のようにツイートしている。「すべてのKVMベースのハイパーバイザーは、今後数年間でさらに増加するだろう…しかし、もう増加し始めている。KubeVirtがこの未来にどのようにフィットするかは興味深い。」
KubeVirtに関連する詳細については、公式発表をご覧ください。KubeVirtの使用を開始するためのAPIリファレンスとドキュメントはこちらから入手できる。CNCF卒業基準に関連する詳細については、このドキュメントにアクセスしてください。