Intelが中国のベンチャーHyperと共同で開発を進める新しいコンテナランタイムKataを公開
Cloud Native Computing Foundation(以下、CNCF)は、2017年12月5日~8日の日程でテキサス州オースチンにてKubeCon+CloudNativeConを開催した。CNCFはKubernetesやFluentdなどのクラウドに最適化されたオープンソースソフトウェアをホストしてインキュベーションするための団体だ。2016年には4つのプロジェクトをホストしていたが、わずか1年後の2017年12月にはホストするプロジェクトの数は14と急成長を遂げた。コンテナオーケストレーションのKubernetes、ログ収集のFluentd、モニタリングのPrometheusのようにそれぞれの機能は分かれており、同じ役割を果たすソフトウェアは少ないのだが、その例外はコンテナランタイムだ。すでにDockerから分離したcontainerd、CoreOSが開発したrktが、コンテナランタイムとして同じCNCFの下で開発を進めている。
そこにCNCFのプラチナメンバーでもあるIntelと中国のベンチャーであるHyperとが共同で、それぞれのコンテナランタイムのコードを持ち寄った新しいコンテナランタイムとして開発を発表したのが、Kata Containers(以下、Kata)だ。
「CNCFに3つもコンテナランタイムが存在するのはおかしい」という声が聞こえたのかはわからないが、KataはCNCFではなくOpenStack Foundationでホストされるプロジェクトだ。ただし開発とガバナンスはKataプロジェクトの中で行われ、直接OpenStack Foundationが行うのではないということが明らかにされている。ちなみにKataとはギリシャ語の由来で「契約」というような意味合いだそうだが、日本語の「型」、すなわち空手などの決められた動きにも由来していると書かれている。
OpenStack Foundationから発表されたニュースリリース:Kata Containers Project Launches to Build Secure Container infrastructure
このプロジェクトの狙いは、仮想マシンベースのセキュリティとアイソレーションをコンテナに提供することだというのが、IntelとHyperがプレゼンテーションで伝えたかったメッセージのようだ。KubeConでのプレゼンテーションは、以下の動画を参照して欲しい。
Kata Containers: Hypervisor-Based Container Runtime
ここでコンテナランタイムについて、コンテナの歴史そのものからおさらいをしておこう。Red Hatのホームページにある情報によれば、複数のアプリケーションを分離させるための技術としてFreeBSDのJailとして実装されたのが2000年、それからLXCとして実装されていたものをDocker(当時のdotCloud)が、クラウド向けのアプリケーション実行環境としてコンテナテクノロジーを再発見したのが2008年だ。
Red Hatによるコンテナの歴史:The History of Containers
DockerがLXCと開発者のためのツール群をまとめたことで、あっという間にIT業界の寵児(英語で言えばDarling of the IT industry)になったのが2014年のことだ。同じ年にGoogleは、社内の基盤上では毎週20億個のコンテナが実行されていることを発表した。この発表は「Dockerよりも先に、コンテナを実際に本番で使っていたのはオレたちだ」という牽制もあったのだろう。そしてGoogleは、2014年の6月にKubernetesを発表した。コンテナそのものではなく、複数のコンテナをいかに制御するのが重要か? を、Borgのオープンソースソフトウェア版であるKubernetesの発表によって表明したというところだろう。2014年はDockerによるコンテナブームとGoogleが自社のインフラストラクチャーにおけるコンテナ運用の重要性を宣言した年であったといえる。そして2015年にOpen Container Initiativeが発足し、コンテナのオーケストレーションに関してはDockerのSwarmとGoogleのKubernetesが並び立つという構図になった。CNCFが創設されたのも2015年で、Kubernetesは1.0の時点でCNCFのプロジェクトとして開発が推進された。結果的には2017年の10月に開かれたDockerConで、DockerがKubernetesに正式に対応した時点で、オーケストレーションについてはKubernetesにほぼ収束したというのが2017年という流れだろう。
コンテナランタイムに関しては、DockerはrunCをcontainerdとして分離し、オープンソースソフトウェアとして公開し、一方セキュリティに関して常にDockerを批判していたCoreOSはrktとしてコンテナランタイムを公開した。どちらも現在は、CNCF配下のプロジェクトだ。ではKataは何を目指しているのだろうか?
Kataのホームページによれば「軽量な仮想マシンとして実装され、コンテナのように実行。そして仮想マシンのアイソレーションとセキュリティを保証する」といったところだろう。アーキテクチャーとしては、仮想マシンのようにハイパーバイザーの上では個別の実行空間を持ちつつ、仮想マシンほど重装備ではないコンテナの実行環境ということになるだろう。
Intelが肩入れをしているということもあり、KataもIntel製CPUの仮想化技術である「Intel VT」に依存するものと考えたくなる。しかしその点は何度も訊かれているせいか、KubeConのセッションでは冒頭から「全てのハードウェア環境をサポートする」とコメントする一場面もあり、プロセッサ屋としてのIntelではなく、あくまでもソフトウェアをリードするIntelとしての姿勢を見せつけたかったように思える。
各ベンダーの思惑によって、もしくは表向きは用途に併せてコンテナランタイムが乱立したとしても、どこかの時点でひとつの業界標準に収束していくのは、これまでのIT業界の歴史からみれば自然の帰結だろう。
もう一つのポイントは、Intelが選んだHyperが北京のベンチャーであるということだろう。Linux Foundationも配下のCNCFもOPNFVも、中国のデベロッパーそしてユーザーを無視することは難しく、CNCFにおいては逆に積極的に中国のリソースを利用しようとしているように見える。その意味では中国本土のAlibabaやJD.com、Tencent、China Mobileなどの巨大なユーザーの知見を拾い上げると言う意味で、中国のベンダーと組むというのは良い手のようにみえる。ちなみにHyperのブログによれば、中国の有力なECサイトであるJD.comのクラウドサービスであるJCloudでは、HyperのランタイムであるrunVが本番環境として利用されていると言う。
How Hyper’s technology enables JD.com to build "Hummingbird", a Container-native Cloud
いずれにせよ、2018年の11月14~15日に開かれるKubeCon+CloudNativeCon@上海でも、Kataのプレゼンテーションやユースケースの発表は行われるだろう。Kataの進展を見守りたいと思う。
Kataに関する公式サイト:Kata Containers
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Open Infrastructure Summitで注目を集めるKata ContainersとStarlingX
- KubeCon+CloudNativeCon開催、勢いのあるKubernetesとCNCFプロジェクトが一同に
- runC vs. cc-runtime vs. kata-runtime?コンテナランタイムの内部構造と性能比較
- KubeCon Europe開幕、初日のキーノートではLinkerd、OpenTelemetryに注目
- OpenStack Summit 2018 Vancouver開催 リアルな情報交換の場となったイベント
- CNDO 2021、サイバーエージェントのテックリードがコンテナランタイムの最新情報を解説
- LinuxCon+ContainerCon+CloudOpen China開催。中国企業の存在感が大きかった初日
- Open Infrastructure Summit開催。キーノートはOpenStack離れと他OSSとの連携
- ONSに参加する意図をOpenStack FoundationのJonathan Bryce氏に訊いてみた
- OpenStackとコンテナの技術動向