コンテナオーケストレーションツールの“事実上の標準”という座をつかんだ「Kubernetes」。>コンテナオーケストレーションツールの“事実上の標準”という座をつかんだ「Kubernetes」。その重要性とは?コンテナオーケストレーションツールの“事実上の標準”という座をつかんだ「Kubernetes」。その重要性とは?数多くのソフトウェアが名乗りを上げていたDockerコンテナのオーケストレーションツールの覇権争いですが、「Kubernetes」が事実上の標準の座を獲得することで、その決着を見ました。オーケストレーションツールとはいかなるもので、そして、なぜ重要なのでしょうか?Dockerに代表されるコンテナ型仮想化では、コンテナエンジンの分野でDockerがほぼ一強である一方、コンテナオーケストレーションの分野では標準の座をめぐり、多くのツールがしのぎを削ってきました。その状況にも決着がつきました。Googleが開発し、オープンソース化されたKubernetesが、コンテナオーケストレーションの事実上の標準の座を勝ち取ったのです。多くのツールがコンテナオーケストレーションの覇権を争ったのでしょうか。そもそもコンテナオーケストレーションとは何なのでしょうか。Kubernetesの公式サイトピンチアウトで拡大Dockerコンテナはまず軽量さが注目されたDockerに代表されるコンテナ型仮想化が最初に注目されたのは、仮想マシンを扱うよりも軽量かつ迅速に、アプリケーションの実行環境を丸ごと別のマシンへ持ち運ぶことができるという特長のためでした。多くの開発者がこの機能を利用して、手元のPC上にDockerコンテナ環境を構築し、コンテナごとにテスト環境や本番環境へ移動することを始めました。これにより、開発環境ではちゃんと動いていたのに実行環境では微妙にライブラリやOSのバージョンが違うので動かない、といったことなどが避けられるようになったのです。多数のコンテナの運用管理を担うのがオーケストレーションツールDockerコンテナが本番環境に浸透し始めると、そのコンテナの運用管理をしなくてはならなくなります。コンテナ化したアプリケーションを何台ものサーバーへ展開するのは手間になり、複数のサーバーへ展開したコンテナがちゃんと稼働しているかどうかを監視することも必要になります。万が一、いずれかのコンテナが落ちたときに別のコンテナを起動するクラスター管理、アプリケーションへの負荷が高まったらサーバーを増やし、負荷が減ればサーバーを減らすスケーラブルな運用対応や複数コンテナへのアクセスの分配など、さまざまな処理が必要となってきます。した多数のコンテナに対する運用管理作業を一般に“コンテナオーケストレーション”と呼びます。Kubernetesをはじめとするコンテナオーケストレーションツールは、こうした作業を自動化してくれるのです。正確な表現ではありませんが、コンテナを基盤とした分散環境を実現するOSのような位置づけと言ってもいいでしょう。以前、このコラムでDockerコンテナの記事「注目を浴びるDockerコンテナ、従来の仮想化と何が違うのか?」(http://cn.teldevice.co.jp/column/detail/id/102)を書いたとき、私は記事の最後に「Dockerあるいはコンテナ型仮想化は、現在のサーバー仮想化よりも身近かつ便利な存在として広く普及することでしょう。この予測通り、Dockerコンテナはクラウドアプリケーションの基盤として普及し始めているだけでなく、例えばDevOps、サーバーレス、マイクロサービスアーキテクチャといった、クラウド時代のアプリケーション開発における方法論や仕組みを実現する基盤としても重要な存在と見なされています。平たく言えば、「これからのアプリケーション基盤としての本命がDockerコンテナ」ということです。そのDockerコンテナを本番環境で運用管理し、分散アプリケーションとして稼働させるという重要な役割を担うのが、コンテナオーケストレーションツールというわけです。Kubernetesが事実上の標準にクラウド時代の分散アプリケーションの基盤となるコンテナ全体をつかさどるソフトウェアというポジションを獲得すべく、さまざまなコンテナオーケストレーションツールが登場してきました。Kubernetesなどです。2017年2月、fleetを開発していたCoreOSは「Kubernetesはオープンソースのコンテナオーケストレーションのデファクトになった」と宣言して、fleetの開発を終了します。Labsも相次いでKubernetesのサポートを発表しました。コンテナオーケストレーションツールの事実上の標準の座をKubernetesが獲得したことを決定づけたのは、Kubernetesの最大の競争相手であるSwarmをリリースしていたDockerが、2017年10月にDockerとKubernetesとの統合採用を発表したことでした。EKS)」(http://www.publickey1.jp/blog/17/amazon_ekskubernetesaws_reinvent_2017.html)を発表。業界標準になったことを多くの人に印象づける結果となりました。Service(AKS)」を提供するなど、主要なクラウドサービスにおいてKubernetesマネージドサービスが出揃うといった状況でした。して2017年末を待たずに、コンテナオーケストレーションの業界標準をめぐる戦いは幕を下ろしたのです。2017年10月、DockerはコンテナオーケストレーションツールとしてKubernetesとの統合を発表した。ピンチアウトで拡大2018年はさらなる普及のフェーズへコンテナが普及し、コンテナを運用管理するオーケストレーションツールも事実上の標準が決まったことで、コンテナが本番環境で本格的に利用される状況が整ったと言えます。Kubernetesだけでなく、さまざまなコンテナの実行環境を各クラウドベンダー、ソフトウェアベンダーが提供しています。2018年度はこうしたサービスや製品が成熟しつつ、さらに広い分野でコンテナオーケストレーションツールが利用され始めるフェーズに入っていくことでしょう。※このコラムは不定期連載です。※会社名および商標名は、それぞれの会社の商標あるいは登録商標です。IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求。