BT

コンテナオーケストレーションソフトウェアを比較する

| 作者: Hrishikesh Barua フォローする 15 人のフォロワー , 翻訳者 h_yoshida フォローする 1 人のフォロワー 投稿日 2017年2月20日. 推定読書時間: 4 分 |

原文(投稿日:2017/02/08)へのリンク

先日の記事で,現在入手可能なコンテナオーケストレーションの選択肢が比較されている。取り上げられていた範囲は,セルフホストの必要なオープンソースからコンテナ・アズ・ア・サービス製品まで,スタートアップからエンタープライズ規模にまで及ぶ。

それぞれのオーケストレーションの選択肢は,コンテナのプロビジョニング,ローンチおよびディスカバリ,システム監視とクラッシュリカバリ,宣言型のシステムコンフィギュレーション,コンテナ配置とパフォーマンスに関するルールと制約の定義といった,共通する機能に加えて,それぞれが特定のニーズに応じるための機能を備えている。

オープンソースのオーケストレーションにはDocker Swarm, Kuberenes, Marathon, Nomadなどがある。いずれも自身のデータセンタ内にオンプレミスで,あるいは大部分のパブリッククラウドにインストール可能だ。Kubernetesについては,Google Container Engineの一部としてホスト型ソリューションとしても利用できる。Kubernetesはポッドと呼ばれる論理ユニットをスケジュールする。ポッドとは,特定のタスクに対して一緒にデプロイされるコンテナのグループだ。ポッドを使用して,デプロイメントのように,より高度な抽象化を構成することができる。それぞれのポッドは,標準的な方法に加えて,ユーザが定義したヘルスチェックで監視することが可能だ。KubernetesはOpenStackのようなプロジェクトでも,コミュニティおよびベンダサポートの下で採用されている。

Docker SwarmはDockerのネイティブなオーケストレーション製品だ。Docker 1.12には,複数ホストを対象としたオーケストレーションを行なう“swarm mode”機能が追加されているが,Docker Swarmは独立した製品として存続している。Docker SwarmにはDocker API経由でアクセスして,docker composeなどのツールを起動し,サービスやコンテナの宣言型オーケストレーションを行なう。Docker Swarmは,企業レベルのコンテナ展開を目的とした大規模製品 — Docker Datacenter — を構成している。

SwarmとKubernetesは,いずれもYAMLコンフィギュレーションファイルを使用する。 どちらもオープンソースだが,KubernetesはCNCF (Cloud Native Computing Foundation)プロジェクトの一部であり,Dockerとは依存関係を一切持っていない。ただし,オンプレミスのみでなく,AWSなどのパブリッククラウド上でも実行可能な点は同じだ。

MarathonオーケストレーションフレームワークはApache Mesosプロジェクトをベースとする。Apache MesosはそのAPIを通じて,物理的に分散したデータセンタ群のリソース管理とスケジュールの抽象化を可能にする。Mesos上のシステムは,基盤となるコンピューティング,ネットワーキング,ストレージといったリソースを,仮想マシンがハイパーバイザ経由で基盤リソースを使うように利用することができる。MarathionはMesosを利用してその上で動作し,長時間実行するアプリケーションにコンテナオーケストレーション機能を提供する。MarathonはMesosとDockerコンテナランタイムの両方をサポートする。

Amazon EC2 Container Service (ECS)とAzure Container Serviceはいずれもホスト型ソリューションで,後者が最新だ。ECSはAWSインフラストラクチャ上で動作するコンテナをサポートし,エラスティックロードバランシングやロギング用のCloudTrailなどのAWS機能を利用することができる。ECSタスクスケジューラは,オーケストレーション用のサービスにタスクをグループ分けする。データストレージの永続化には,データボリュームやAmazonのElastic File System(EFS)が利用可能だ。Azureのコンテナサービスは基盤となるクラスタマネージャにMesosを使用する。オーケストレーションはApache Mesosphere Datacenter Operating System(DC/OS),Kubernetes,Docker Swarmから選択できる。

HashicorpのNomadはDockerコンテナの他,VMやスタンドアロンのアプリケーションもサポートするオープンソース製品だ。Nomadは,各ホストにデプロイされたエージェントが中央のNomadサービスと通信を行なう,エージェントモデルを採用している。Nomadサーバは,各ホストの持つ利用可能なリソースに基づいて,ジョブのスケジューリングを管理する。Nomadは複数のデータセンタを対象として,Consulなど他のHashicorpツールと統合することができる。

記事では,特定のインフラ(AWSやAzureのような)へのロックインが受け入れられるかどうかが,オーケストレーションツールを選択する場合の決定条件のひとつである,と結論付けている。

 
 

この記事を評価

関連性
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT