コンテナ with 仮想マシン、仮想マシン with コンテナ
コンテナだけの世界なんてやっぱりファンタジー。でも仮想マシンだけの世界はレガシー。現実を見ると両方カバーしないと先には進めないのはわかってきて、結局のところオンプレミスにおける仮想マシン界の王様VMware社と、コンテナ界でOpenShiftで優位に立つRed Hat社がガチ勝負していることに気が付きました。
Red Hatは2020年4月28日(米国時間)に発表したOpenShiftの最新版、「Red Hat OpenShift Container Platform 4.4」に、仮想マシンをコンテナと共にKubernetes上で稼働できる「OpenShift Virtualization」を技術プレビュー版(technology preview)として組み込んだ。これによって、「レガシーな仮想化基盤に余計な費用を支払う必要はなくなる」としている。
いやいや、Red Hat社は昔から、Red Hat Virtualizationという仮想マシン基盤をリリースしていて私も使ったことはあるのですが、出来はVMwareにかなわんなという印象でした。この仮想マシン基盤の基礎をOpenShiftに組み込んで、仮想マシンもコンテナもサポートするということにしました。
一方で、VMware陣営も、今後Kubernetesを核としてコンテナ実行環境がシェアを広げると、これまで仮想マシン基盤で圧倒的なシェアを誇っていた市場が切り崩される。ということで、VMware Tanzuというコンテナ基盤を開発し、先日、vSphere 7に組み込み、コンテナも仮想マシンも同時に走らせられるようにしたというニュースがあったばかりでした。
この2製品、特にCloud Foundation with Tanzuは、次の2つの点でユニークだ。
第1に、Cloud Foundation with Tanzuでは、サーバ仮想化環境上でコンテナを動かすこともできるが、それだけではない。ハイパーバイザー上で動かすことができる。このため、仮想マシンとコンテナを単一基盤上に並列で稼働し、双方を混在させられる。その意味で、サーバ仮想化環境とコンテナ環境を“融合”している。第2に、これら2つの管理を統合しながら、開発プロジェクト/チームと ITインフラ運用担当部署の間で“役割分担”ができるようにしている。
すごく同じようなことを言っているのですが、Red Hat社とVMware社で同じ山を、別々のルートで登ってきたということが言えます。
我々は、仮想マシンもコンテナも、両方運用しなければいけないけれども、二つの運用基盤を管理したくないのだということですね。
OpenShift 4.4で実装した仮想マシン機能
OpenShiftの仮想マシン機能を説明するのに、RedHat Virtualizationの話をしましたが、これには理屈があります。
上記2製品は「進化」だが、Hicks氏が「革命」としたのが、3つ目の「OpenShift virtualization」だ。KubeVirtを土台とし、単一のコンテナーベースのプラットフォーム上でコンテナー、仮想マシン(VM)、さらにはサーバーレスを使うアプリケーションの開発、実装、管理ができる。VMを取り出してインポートしてOpenShiftの上で動かすことができるため、「VMをLinuxコンテナーのように扱うことができ、KubernetesとOpenShiftのパワーと仮想化を結びつける」とHicks氏は説明する。
ここでKubeVirtというキーワードが出てきました。Kubernetes上で仮想マシンを扱うための技術です。
KubeVirtの中身は、以下の記事が詳しいです。
読んでいくとわかりますが、結局中味はRedHat Enterprise Linuxベースのlibvirt-daemon-kvmとqemu-kvmです。
OpenShiftのインストーラに任せるとこの辺りの仕組みを知らなくても運用できるとは思いますが、納得感はあります。
仮想マシン基盤として、KVMを採用するか、VMware ESXiを採用するかということが内部的には問われてくると思います。
冒頭記事で、
OpenShift Virtualizationでは、「VMware vSphere」「Red Hat Virtualization」「Red Hat OpenStack Platform」から、仮想マシンをウィザード形式で直接取り込めるという。
と書いてありましたが、逆にエクスポートできるのか。取り込んだら最後出せなくならないのか‥等考慮点は様々発生しそうです。
使ってみたい・・けれど
最近の基盤ソフトウェアは、専用のサーバーやネットワーク、ストレージありきが前提でなかなか触れる機会がありません。
ベンダーに考えてほしいのは、構築が素早くできるソフトウェアにすること。この時代、複雑な導入手順ありきで作られた場合、危なっかしくて仕方がないです。特にいくつものソフトウェア群がスイート的に組み合わさっているような場合、これ入れてあれ入れてその後それ入れて、というのが至極大変です。
組み合わせるのはいいのですが、インストーラーは1つであってほしい。手順はシンプルであってほしい。そして、簡単に導入して試用できるようなものであってほしい。
今のところ、機能追求ありきで、ユーザーにどうやったら利用できるのかの導線がVMware陣営もRed Hat陣営もまだうまく実装できていません。バージョンが変わると機能もインターフェースも導入手順もどんどん変わるので、なかなかついていくのも大変と言った状況です。
であれば、パブリッククラウド使った方が楽かなという発想になってしまうので、ここいらで「使いやすさ」に手を入れてほしいなと思うのが私の率直な感想です。