Kubernetes PodsとDocker Composeスクリプトの結果(以下、「構成」)の両方が、仮想コンピューターのクラスターになります。
クラスター内のコンピューターはすべて互いに通信するように構成できるため、エンドツーエンドの運用構成全体をミラーリングする単一のスクリプトを作成できます。単一のスクリプトを使用すると、そのコンテナを任意のコンテナホストにデプロイできます。
2つのシステムの類似性を考えると、2つのシステムの違いを理解するのに苦労しています。
なぜ私は一方をもう一方よりも選ぶのでしょうか?相互に排他的なシステムですか、それともkubernetesでコンポジションを実行できますか?.
コンテナシステム向けの設計時に考慮する必要がある重要な考慮事項はありますか?サイトのアーキテクチャを設計している場合今日で、likeを使用してコンテナベースのシステムを構築しようとします。設計すべき最も優先度の高いものは何ですか? (単一マシンシステムでの構築と比較して)
docker compose
は、開始する必要があるコンテナを宣言するための単なる方法です。 ノードやクラスターの概念はありません、swarm masterおよびswarmノードを起動しない限り、それは docker swarm
)
2016年7月、7か月後の更新:docker 1.12は行をぼかし、 「スウォームモード」を含む 。
kubernetes とは大きく異なり、数千または数百のマシンでポッドとして数千のコンテナーグループを管理するGoogleツールです。
Kubernetes Pod は ドッカーの群れからより近くになります :
個々のDockerコンテナを梱包箱として想像してください。同じ場所に行くか、お互いに親和性がある必要があるため、一緒にいる必要がある箱は、輸送用コンテナに積み込まれます。
このアナロジーでは、梱包箱はDockerコンテナーであり、出荷用コンテナーはKubernetesポッドです。
ポッドは、kubernetesがポッドをオーケストレーションできることを除いて、composeと同等であると思います。
ちなみにdocker-composeでkubernetesコマンドを起動 。
Kubernetesは、Swarmなどの他のコンテナ管理システムとの違いに関して、Googleが開発したクラスターマネージャーの3番目の反復です。
Kubernetesの詳細については、 Google Cloud Platformポッドキャストのエピソード# をご覧ください。
どちらもマルチコンテナアプリケーションを作成できることは事実ですが、Podはデプロイの単位および水平スケーリング/複製としても機能しますが、Docker Composeは提供しません。
さらに、ポッドを直接作成するのではなく、コントローラー(レプリケーションコントローラーなど)を使用します。
PODは、コロケーション(共同スケジューリング)、運命の共有、調整された複製、リソース共有、および依存関係管理を提供する、より大きなプラットフォーム内に存在します。
Docker-composeはdocker-compose.yml
ファイルを使用して、単独で...
上記の回答がこの質問に明確に答えているにもかかわらず、簡単なメモを追加しています。
Docker-ComposeポッドとKubernetesポッドはどちらも、イメージからコンテナーインスタンスを定義する構成ファイル(Yaml)です。
Docker compose自体は、通信用のサービス(コンテナー)を収容する能力を備えた単なるファイルです。本質的に非分散型です。
ネットワーキングに関して違いがあります:
ポッド内のアプリケーションはすべて同じネットワーク名前空間(同じIPおよびポートスペース)を使用するため、相互に「検索」してローカルホストを使用して通信できます。このため、ポッド内のアプリケーションはポートの使用を調整する必要があります。各ポッドは、ネットワーク上の他の物理コンピューターおよびポッドと完全に通信できるフラットな共有ネットワーク空間にIPアドレスを持っています。