Kubernetesだけじゃない「コンテナオーケストレーター」 Mesos、Swarmとは?コンテナネットワークの基礎知識【第4回】

「Docker」の普及で利用が広がったコンテナ。その大規模運用の際に威力を発揮するのが「コンテナオーケストレーター」です。「Kubernetes」などの主要なコンテナオーケストレーターを紹介します。

2020年10月14日 05時00分 公開
[奈良昌紀, 細谷典弘, 千葉 豪ネットワンシステムズ]

関連キーワード

Docker | ネットワーク


 商用環境など大規模なコンテナ環境を運用する場合は、大量のコンテナを効率的に管理することが求められます。第3回「『コンテナ』の商用利用で考慮すべき5つのポイントとは?」では、コンテナをクラスタ化する場合に生じるさまざまな課題を紹介しました。その課題を解決するために、「コンテナオーケストレーター」というコンテナクラスタ管理ソフトウェアが幾つも開発されてきました。

 コンテナの普及とともに広く知られるようになった「Kubernetes」は、代表的なコンテナオーケストレーターです。他にもさまざまなコンテナオーケストレーターがあり、それぞれアーキテクチャやコンセプトが異なります。図1の通り、商用環境のコンテナ運用に求められる機能を標準提供するものもあれば、フレームワークやプラグインなど外部の仕組みを利用することで実現するものもあります。

画像 図1 コンテナオーケストレーターの機能比較《クリックで拡大》

 図1の各機能はコンテナを商用環境で運用する際に重要になります。各機能の役割は第3回で解説した通りです。

 各コンテナオーケストレーターに共通しているのは、カスタマイズ性が高いというメリットがあることです。ただしその半面、設計の際に考慮すべき点が幾つかあり、扱いが簡単ではないという特性もあります。代表的なコンテナオーケストレーターを見ていきましょう。

Apache Mesos+Marathon

 非営利団体Apache Software Foundation(ASF)が開発するクラスタ管理ソフトウェアの「Apache Mesos」は、それ自体は厳密にはコンテナオーケストレーターではありませんが、フレームワークの「Marathon」との組み合わせでコンテナオーケストレーターとして活用できます。Mesosは「マスター」「エージェント」と呼ばれる、複数ホストから成るクラスタを構成します。エージェントはタスクを実行し、マスターはエージェントのタスクを管理する役割を担います。

 Mesosはクラスタのコンピューティングリソース配分機能やタスクのスケジューリング機能を提供します。分散型アプリケーション(複数のサービスを組み合わせて稼働するアプリケーション)を実行するためのフレームワークの併用で機能を拡充できます。分散処理フレームワークの「Apache Hadoop」や「Apache Spark」によりビッグデータ処理を実行し、バッチスケジューリング用のフレームワークを利用することによりバッチ処理を実行します。コンテナオーケストレーション用フレームワークであるMarathonを利用することによりコンテナを利用したデーモンプロセス(常に稼働しているプロセス)のような長期実行サービスを実行することが可能です。フレームワークを利用することにより特性の異なるさまざまなワークロード(システム)の管理を可能にしています。

Docker Swarm

 「Docker Swarm」は、コンテナ管理ツール「Docker」で知られるDocker社が中心となって開発したコンテナオーケストレーターです。コンテナイメージの作成やコンテナ起動を担うDockerのコアコンポーネント「Docker Engine」がインストールされたホスト群のクラスタ化や管理が可能です。当然ながらDockerとの親和性が高く、Dockerコマンドをそのまま利用して、クラスタ環境を管理できる特徴があります。

 開発当初、Docker SwarmはDockerから独立した個別のソフトウェアとして登場しました。現在は「Swarm mode」としてDocker Engineに統合されています。

Kubernetes

 Apache Mesos+MarathonやDocker Swarmのように、Kubernetesも複数ホストの管理やコンテナのスケジューリングなど、コンテナオーケストレーターとしての基本的な機能を備えています。Kubernetesの前身は、Googleのエンジニアが開発したクラスタ管理ソフトウェア「Borg」です。Googleは自社が提供するさまざまな機能をコンテナとして動作させており、それらのコンテナクラスタをBorgで管理しています。同社はBorgのアーキテクチャを見直すに当たって、OSSとしてKubernetesを公開しました。

普及を後押しするエコシステム

 Googleは2015年にKubernetesのバージョン1.0を公開するとともに、同社が中心となって業界団体CNCF(Cloud Native Computing Foundation)を設立し、Kubernetesを同団体に移管しました。同団体の初期の参加組織として、Googleの他にIntel、Red Hat、Docker、CoreOS、Cisco Systems、IBM、Twitter、VMware、Cloud Foundry Foundation、AT&T、Goldman Sachs、Huawei Technologiesなど、さまざまな組織が名を連ねました。当初からKubernetesに対する業界の関心が高かったことが伺えます。

 その後、2017年にDocker社はKubernetesをDockerに統合し、Docker Swarmと同じようにDockerの機能として利用できるようにしました。さらにAmazon Web Services、Microsoft、Googleといったクラウドベンダーが次々とKubernetesのマネージドサービスを発表しました。こうしてKubernetesのエコシステムが急速に生まれ、Kubernetesはコンテナオーケストレーターのデファクトスタンダード(事実上の標準)と呼べるほどに成長したのです。米国、欧州、中国で毎年開催されているKubernetesに関する国際カンファレンス「KubeCon」の参加者(図2)を見れば、Kubernetesへの関心が年を追うごとに高まっていることが分かるでしょう。

画像 図2 KubeConにおける参加者の推移(出典:CNCFのWebサイト)《クリックで拡大》

 近年は「KubeCon + CloudNativeCon」として、Kubernetesだけでなく関連する技術分野を総合的に扱うカンファレンスへと拡大しています。Kubernetesのエコシステムの広がりはこうしたカンファレンスだけではありません。CNCFが提供するWebサイト「CNCF Cloud Native Interactive Landscape」にもさまざまなパートナーや関連製品が集まり、Kubernetesを中心としたコミュニティーが盛り上がっています。

執筆者紹介

奈良昌紀(なら・まさのり) ネットワンシステムズ ビジネス開発本部 第1応用技術部

通信事業者のデータセンターにおいてネットワークやサーバの運用を経験後、ネットワンシステムズに入社。帯域制御やWAN高速化製品、仮想化関連製品を担当後、主にクラウドや仮想インフラの管理、自動化、ネットワーク仮想化の分野に注力している。

細谷典弘(ほそや・のりひろ) ネットワンシステムズ ビジネス開発本部第3応用技術部

データセンターネットワークの他、マルチクラウド向けのハードウェアやソフトウェアの最先端技術に関する調査・検証、技術支援などを担当。注目分野は「Kubernetes」。放送システムのIP化に向けた技術調査・検証も担当している。

千葉 豪(ちば・ごう) ネットワンシステムズ ビジネス開発本部 第1応用技術部

IaaS(Infrastructure as a Service)をはじめとしたクラウド基盤技術および管理製品を担当。コンテナ技術を中心とした開発・解析基盤の構築から運用、コンテナに関連した自動化技術や監視製品の技術検証などに注力している。


ITmedia マーケティング新着記事

news148.jpg

天候と位置情報を活用 ルグランとジオロジックが新たな広告サービスを共同開発
ルグランとジオロジックが新たな「天気連動型広告」を共同開発した。ルグランが気象デー...

news130.jpg

“AI美女”を広告に起用しない ユニリーバ「Dove」はなぜそう決めたのか
Unilever傘下の美容ケアブランド「Dove」は、「Real Beauty」の20周年を機に、生成AIツー...

news099.png

有料動画サービス 34歳以下では過半数が利用経験、4割は1日1回以上利用
「ニールセン・ビデオコンテンツ アンド アド レポート 2024」を基に、テレビ画面での動...