web-dev-qa-db-ja.com

Kubernetes PodsとDocker Compose(s)(Composures)の違いは何ですか?

Kubernetes PodsとDocker Composeスクリプトの結果(以下、「構成」)の両方が、仮想コンピューターのクラスターになります。

クラスター内のコンピューターはすべて互いに通信するように構成できるため、エンドツーエンドの運用構成全体をミラーリングする単一のスクリプトを作成できます。単一のスクリプトを使用すると、そのコンテナを任意のコンテナホストにデプロイできます。

2つのシステムの類似性を考えると、2つのシステムの違いを理解するのに苦労しています。

なぜ私は一方をもう一方よりも選ぶのでしょうか?相互に排他的なシステムですか、それともkubernetesでコンポジションを実行できますか?.

コンテナシステム向けの設計時に考慮する必要がある重要な考慮事項はありますか?サイトのアーキテクチャを設計している場合今日で、likeを使用してコンテナベースのシステムを構築しようとします。設計すべき最も優先度の高いものは何ですか? (単一マシンシステムでの構築と比較して)

48
Alex C

docker compose は、開始する必要があるコンテナを宣言するための単なる方法です。 ノードやクラスターの概念はありません、swarm masterおよびswarmノードを起動しない限り、それは docker swarm
2016年7月、7か月後の更新:docker 1.12は行をぼかし、 「スウォームモード」を含む

kubernetes とは大きく異なり、数千または数百のマシンでポッドとして数千のコンテナーグループを管理するGoogleツールです。

Kubernetes Podドッカーの群れからより近くになります

個々のDockerコンテナを梱包箱として想像してください。同じ場所に行くか、お互いに親和性がある必要があるため、一緒にいる必要がある箱は、輸送用コンテナに積み込まれます。
このアナロジーでは、梱包箱はDockerコンテナーであり、出荷用コンテナーはKubernetesポッドです。

以下にコメント by ealeon

ポッドは、kubernetesがポッドをオーケストレーションできることを除いて、composeと同等であると思います。

ちなみにdocker-composeでkubernetesコマンドを起動

http://3.bp.blogspot.com/-MDUsXIy-lt0/VMuhJ9jBefI/AAAAAAAAA0I/qPuy0N8UXWA/s1600/Screen%2BShot%2B2015-01-30%2Bat%2B7.19.27%2BAM.png

Kubernetesは、Swarmなどの他のコンテナ管理システムとの違いに関して、Googleが開発したクラスターマネージャーの3番目の反復です。

Kubernetesの詳細については、 Google Cloud Platformポッドキャストのエピソード# をご覧ください。

どちらもマルチコンテナアプリケーションを作成できることは事実ですが、Podはデプロイの単位および水平スケーリング/複製としても機能しますが、Docker Composeは提供しません。
さらに、ポッドを直接作成するのではなく、コントローラー(レプリケーションコントローラーなど)を使用します。

PODは、コロケーション(共同スケジューリング)、運命の共有、調整された複製、リソース共有、および依存関係管理を提供する、より大きなプラットフォーム内に存在します。
Docker-composeはdocker-compose.ymlファイルを使用して、単独で...

43
VonC

上記の回答がこの質問に明確に答えているにもかかわらず、簡単なメモを追加しています。

  1. Docker-ComposeポッドとKubernetesポッドはどちらも、イメージからコンテナーインスタンスを定義する構成ファイル(Yaml)です。

  2. Docker compose自体は、通信用のサービス(コンテナー)を収容する能力を備えた単なるファイルです。本質的に非分散型です。

  3. Kubernetesポッドには複数のコンテナーを定義する機能もありますが、ここでの主な違いは、利用可能なノード間での分散の概念です。
  4. 最後に、Docker Composeは、Swarmで指示されない限り、オーケストレーションなしでマルチコンテナDockerアプリケーションを定義および実行するためのツールです。また、ポッドには複数のコンテナが含まれており、利用可能な場合はノードのクラスターで自動的に共有されます。
3
Remario

ネットワーキングに関して違いがあります:

  • ポッド内のコンテナは同じIPアドレスを共有します。 kubernetes docs から:

ポッド内のアプリケーションはすべて同じネットワーク名前空間(同じIPおよびポートスペース)を使用するため、相互に「検索」してローカルホストを使用して通信できます。このため、ポッド内のアプリケーションはポートの使用を調整する必要があります。各ポッドは、ネットワーク上の他の物理コンピューターおよびポッドと完全に通信できるフラットな共有ネットワーク空間にIPアドレスを持っています。

  • Docker-composeのコンテナには異なるIPアドレスが割り当てられます。詳細は ブログ投稿 をご覧ください。
2
Paulo Merson