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の分散画像ウェアハウスの実践

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

推薦する

クラウドへの移行時に企業が直面する7つの一般的な課題

企業がこれらのサイバーセキュリティ ツールを活用すべき理由は何でしょうか?長年にわたり、多くの企業は...

JD.comとSuningが対決を覆す:中小電子商取引企業は価格戦争の傍観者となる

【はじめに】一部の投資家は、電子商取引業界には深刻な問題があり、主力事業は利益が出ず、誰もが資金調達...

WOT2018 ハイレベル技術共有: OpenStack、AR、IoT、DevOps 技術展望

新しい技術の登場や時代の変化に合わせて、WOTサミットも歩み続け、今年で7年目を迎えました。 201...

分散とクラスタリングは同じものですか?こんな簡単な質問に困惑しないでください。

クラスタリングと分散は、実際にはまったく異なる概念です。 [[284886]]クラスタビジネスは複数...

ソフト記事のプロモーションを新しい方法で行う方法

前回の記事では、Qixing が優れたソフト記事の書き方についてお話ししました。今日も、Qixing...

SARFTはテレビ番組や広告にインターネット用語の使用禁止を義務付ける

昨日、国家新聞出版広電総局は関連通知を発表し、各種ラジオ・テレビ番組や広告は、国家共通語の文字、単語...

「産業+起業」がデュアルチャネルを強化、ファーウェイクラウド衛光トレーニング成都ステーションがオープン

4月26日から27日にかけて、ファーウェイクラウドスタートアップサポートプログラム成都ステーションW...

独自のメディアブランドを作成する方法

セルフメディアの運営方法については、さまざまな意見があります。それらはすべて理にかなっているように思...

AWS が 11 時間ダウンしていましたが、これはすべて光ファイバーケーブルが切断されたためでしょうか?

[51CTO.com オリジナル記事] 2019年6月2日午前2時から、AWS 北京リージョンで大規...

マーケティングでは、意図的に構築することなく自然に生まれる友情のつながりを詳しく見ていきます

QQ グループに別のメッセージがポップアップ表示され、よく見ると友好的なリンクの交換に関する情報でし...

Godaddy バレンタインデードメイン名割引コード $3.99 で登録 com (無料のプライバシー保護付き)

Godaddy バレンタインデー ドメイン名割引コード: com を 3.99 ドルで登録 (プライ...

トラフィックの信頼性を識別する3つの簡単な方法

著者は入札広告マーケティングに携わっており、最も恐れているのは偽のトラフィックのあるサイトです。これ...

nofollowタグの役割と利点

nofollowタグ(中国語などで「フォローする」という意味)といえば、ご存知の方も多いと思います。...

デジタルマーケティング戦略を簡素化する3つの要素

デジタル戦略と実行の選択肢が多すぎると、キャンペーンやプロジェクトの豊かさと複雑さを誤って混同し、ビ...

クラウドネイティブアプリケーションをマスターするには、これらの10のポイントをマスターしてください

[[436589]]簡単に言えば、クラウド ネイティブとは、クラウドで生まれ、クラウドで実行されるす...