Kubernetes、Docker Swarm、Amazon ECS 間のコンテナ戦争

Kubernetes、Docker Swarm、Amazon ECS 間のコンテナ戦争

[51CTO.com クイック翻訳] コンテナ技術の原型は 1970 年代後半に始まりましたが、コンテナが主流の技術になったのは 2013 年に Docker が登場してからでした。それ以来、さまざまなコンテナ技術が業界で勢いを増すにつれ、DevOps の企業実践は大きく変わり、さまざまな分散アプリケーションの構築、送信、実行の方法も変化しました。 Docker とコンテナは連携して同期的に開発されると言えます。

コンテナ オーケストレーション ツールは、複数のホストにわたる複数のコンテナを共同で作成、管理、更新するための実用的で強力なソリューションを提供します。同時に、オーケストレーション ツールを使用すると、さまざまなサービスやタスク プロセス間でデータを非同期的に共有することもできます。運用環境では、単一のサービスの複数のインスタンスを複数のサーバー上で実行して、単一のアプリケーションの可用性を高めることができます。オーケストレーションがシンプルになればなるほど、アプリケーションをより深く理解し、より多くの小さなマイクロサービスに分割できると言えます。もちろん、これは当然、新しい疑問につながります。オーケストレーションにはどのツールを選択すればよいのでしょうか?

この記事では、3 つの主要なコンテナ オーケストレーション ツールを比較して、適切なツールを選択できるようにします。

概要

コンテナ オーケストレーションは、インフラストラクチャに大きく依存します。つまり、これらのソリューションが現在のクラウド プロバイダーやオンプレミス展開ソリューションとどのように統合されるかを完全に理解する必要があります。単一のクラウド ベンダーのモノリシック ツール スイートを使用するか、多様なコンポーネント セットが必要ですか?

Kubernetes は現在、コンテナ オーケストレーションの分野で主流となっています。その構成可能性、信頼性、強力なコミュニティは、Docker Swarm をはるかに上回ります。 Kubernetes は Google が作成したオープンソース プロジェクトであるため、Google のクラウド プラットフォーム全体と調和して共存できます。さらに、ほぼすべてのインフラストラクチャでスムーズに実行されます。

Swarm は Docker 独自のオーケストレーション ツールです。 Docker Engine に統合することで、標準化された API とネットワークを使用できるようになります。 Swarm モードには Docker CLI (コマンドライン インターフェイス) が組み込まれているため、他に何もインストールしなくても、新しい Swarm コマンドを簡単に呼び出すことができます。 --docker service create コマンドを使用してサービスをデプロイできます。同時に、Docker Swarm のパフォーマンス、柔軟性、シンプルさの利点は、Kubernetes の優位性と競合することができます。

Amazon Elastic Container Service (ECS) は、Amazon 独自のコンテナ スケジューラです。他の AWS サービスと連携するように設計されています。つまり、監視、負荷分散、ストレージなどの AWS 中心のソリューションをサービスに簡単に統合できるということです。 Amazon が提供するクラウド サービスを使用していない場合、またはワークロードをローカルで実行している場合、ECS は適さない可能性があります。

クベネフィット

Kubernetes は、K8s または Kube と略されることが多く、15 年間 Linux コンテナ開発に注力してきた、コンテナ管理のための Google のオープンソース ソリューションです。ベアメタル クラウド サービス アーキテクチャ、ローカル仮想マシン、ハイブリッド クラウド モデルなど、複数のクラウド プロバイダー上のさまざまな運用環境で動作します。

Kubernetes クラスターは、次の重要なコンポーネントで構成されています。

  • ポッド: 同じノード上に 1 つ以上のコンテナ グループを作成、スケジュール、およびデプロイします。
  • ラベル: さまざまなポッド、サービス、レプリケーション コントローラーのキーと値のペアを識別するために割り当てられるラベル (名前など) です。
  • サービス: ポッドのグループに名前を付け、ロード バランサーのように機能して、実行中のコンテナーにトラフィックを送信します。
  • レプリケーション コントローラー: 特定の数のポッドのレプリカが、特定の時間にスケジュールどおりに実行されるようにする役割を担うフレームワーク。

3 つのツールのうち、Kubernetes のインストールは最も複雑ですが、適切なツールを使用すればプロセスははるかに簡単になります。

  • Kubeadm (https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/) は、既存のオーケストレーション システムまたはベア メタル環境との優れた統合を提供できます。
  • Helm (https://github.com/kubernetes/helm) は、さまざまな Kubernetes アプリケーションのインストールと管理を最適化する人気のツールです。

Kube の主な利点の 1 つは、構成を完全に制御できることです。さらに、いくつかの一般的なプラットフォームには、カスタマイズされた設定をサポートするためのドキュメントも多数用意されています。したがって、問題が発生した場合は、Stack、Overflow、GitHub 上の多数のコミュニティ ユーザーやリソースから支援やサポートを求めることができます。

ドッカースウォーム

Docker Swarm は単一ホストの Docker モデルを拡張し、開発者が複数のコンテナとマイクロサービスを迅速かつ簡単にデプロイできるようにします。 Docker Engine に組み込まれているため、3 つのツールの中で最も軽量で、切り替えも簡単です。

Swarm クラスターは、次の重要なコンポーネントで構成されています。

  • マネージャー ノード: オーケストレーション、クラスター管理、およびタスクの割り当てを制御するために使用されます。
  • ワーカー ノード: ワーカー ノードの唯一の機能は、マネージャー ノードによって割り当てられたコンテナーとサービスを実行することです。
  • サービス: 個々のコンテナを異なるノード間でどのように分散するかを説明します。サービスを作成する場合は、通常の Docker ランタイムで正確な情報を指定し、新しいパラメータ (コンテナのレプリカ数など) を追加します。
  • タスク: Swarm の基本単位です。マネージャー ノードは、サービス記述で設定されたレプリカの数に応じて、ワーカー ノードにタスクを割り当てます。タスクがノードに割り当てられると、別のノードに移動することはできません。

Swarm は、コンテナを使い始めたばかりで、詳細を一つずつ設定する必要がないユーザーに適しています。さらに、Swarm を使用すると、多数のコンテナを簡単にスケールアウトすることもできます。

Swarm Mode は Docker Engine に組み込まれているため、別途インストールする必要はありません。 Docker 1.12 以降にはこの機能があります。

Amazon エラスティックコンテナサービス (ECS)

Amazon ECS は AWS が作成したコンテナ管理サービスであり、Docker 互換のサービスでもあります。コンテナ化されたアプリケーションを EC2 インスタンス上で実行できるため、Kube や Swarm の代替となります。

Docker 自体は非常にシンプルですが、Amazon の ECS はより複雑なツールであるため、まったく新しいプラットフォームを学習する必要があります。 ECS には次のコンポーネントが含まれます。

  • ECS クラスター: さまざまなタスクを実行する EC2 インスタンスのグループです。
  • タスク定義: Docker 実行コマンドと、どのホストでどのコンテナを実行するかの詳細を含む JSON 形式のテキスト ファイルです。
  • サービス: クラスター全体でさまざまなタスク定義の指定された数のインスタンスを実行および維持するために使用されるツールです。
  • サービス スケジューラ: 実行中のタスクを継続的に監視して、オンライン サービスの数が適切であることを確認し、障害が発生した場合にタスクを再スケジュールできます。
  • コンテナ エージェント: この機能は、さまざまなクラスターのインスタンスをコンテナに接続するのに役立ちます。

Amazon ECS は、さまざまなコンテナと他の AWS サービス間のシームレスな統合を可能な限り実現します。これは、高可用性、スケーラビリティ、セキュリティを提供する完全に管理されたサービスです。さらに、AWS の標準サポートプランにはすでに ECS が含まれています。

概要

適切なコンテナ オーケストレーション ツールを選択する方法は、ニーズの焦点に完全に依存し、同時に使用する必要があるテクノロジも考慮する必要があることがわかります。アプリケーションが AWS と密接に関連している場合は、Kubernetes よりも ECS の方が間違いなく適しています。一方、Google Cloud をプロバイダーとして使用し、さまざまな構成に熱心で、最高のサービスのために複雑さと労力を支払う意思がある場合は、Kubernetes が最初の選択肢になります。

原題: コンテナ戦争: Kubernetes vs. Docker Swarm vs. Amazon ECS、著者: Julia Pearson

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  10万個のコンテナを備えたZhihuの分散画像ウェアハウスの実践

>>:  あるスタートアップ企業が企業パフォーマンス管理を次のレベルに引き上げる方法

推薦する

モンスターはトラブル回避のためChinaHR.comを売却:売却も閉鎖もできない

ChinaHR.comが親会社であるMonsterによって売却されるというニュースが最近注目を集めて...

Google AdSense がドメイン名広告サービスを停止

3月2日の早朝、Webmaster EncyclopediaはGoogleから、Google Ads...

ドメイン名投資はリスクもリターンも高い。ウェブマスターは参入する際に注意する必要がある。

ドメイン名の投資と取引は、常にインターネット上で最もホットな市場の 1 つです。ドメイン名の投資で大...

SEO エキスパートになるためのヒント

1. Java スクリプトのドロップダウン メニュー、イメージ マップ、またはイメージ リンクを使用...

下手な初心者SEO

SEO に関しては、私は初心者であり、私の SEO に関する理解は、外部リンクの投稿、フレンドリー ...

Kubernetes RBAC とは何ですか?なぜそれが必要なのですか?

翻訳者 |李睿レビュー |チョンロウKubernetes RBAC とは何ですか?組織が Kuber...

dedipath: (複数の) 専用サーバーのクリアランス、ロサンゼルス、1Gbps 無制限トラフィック、20G 防御、月額 55 ドルから (e3-1240v2/16g/2T/5IP)

ロサンゼルスのデータセンターにある Dedipath の独立サーバーが一掃されつつあり、損益分岐点の...

#黑5# changeip: 30% オフ、Shark データセンター VPS、無制限のトラフィック + 20Gbps の高防御、Windows 搭載

Changeip は長い間登場していないようです。Shark Data Center の VPS は...

インテル、IBMに対抗する量子コンピューティングのテストチップをリリース

[[205894]] BI中国語ウェブサイトが10月11日に報じた。インテルは火曜日、IBMが以前に...

これら4つのことはエッジコンピューティングの真の姿を理解するのに役立ちます

著者についてボストンを拠点とするベンチャーキャピタル会社コンバージの投資家、ジェームズ・ファルコフ氏...

re:Invent 2018 の最新リリース (パート 2)

[[252760]] re:Invent 2018は成功裏に終了しました皆さんもすでに生み出された情...

V.PS: オランダの格安 VPS、年間 9.95 ユーロから、1G メモリ/1 コア/15g SSD/1T トラフィック

v.ps は最近、オランダのデータセンターに定期的な国際回線を備えた Nano シリーズという新しい...

テンセントモバイル広告連盟の控えめな内部テストは、市場の大きな再編につながる可能性がある

複数のモバイル開発者が記者に対し、業界で長らく噂されていたテンセントの「広電通」モバイル広告連合が最...