比較:Docker swarm、Kubernetes、Rancher、およびD2C

軍団を率い始めた瞬間から。 Habréのブログ、デモおよびサポートの呼びかけで、オーケストレーターと私たちをより頻繁に比較し始めました。 そして、D2CとHeroku、Clou66、および同様のサービスの違いについての質問がある前に、今、どうやら、彼らは私たちをオーケストレーションの代替ソリューションとして検討し始めました。







まあ、状況を改善し、よく耳にするいくつかの一般的なソリューションと比較してみます:Docker swarm、Kubernetes、Rancher。 また、「最後から」入力しないように、それぞれについて簡単に説明します。







Docker swarm



Docker swarmモードは、異なるマシン間の境界を消去するDockerの抽象化です。 同じDockerエンジンですが、クラスターで動作します。 いくつかのコンテナワーカーは、Swarmマネージャによって提供されるサービスに結合されます。 Swarmマネージャーは、アプリケーションとともにコンテナーを無料のホストに配置し、クラスター管理コマンドを受け入れます。 Swarmは、複数の「ワーカー」間のロードバランサーとしても機能し、クラスターの両側からのリクエストを均等に分散します。







画像







マネージャー :タスクを送信するコントロールノード。

ワーカー :タスクを実行するノード。

Docker CLI :ユーザーはDocker CLIを介してSwarmと対話し、通常の追加コマンド(dockerノードやdockerサービスなど)に加えて操作します。

Docker Hub :既製の画像のリポジトリ。







長所 :比較的使いやすく、開発速度が速い。 既にDockerコンテナーを使用している場合、Swarmモードの使用を学ぶことは難しくありません。







短所 :kubernetesほどフォールトトレランスの観点から見ればクールではない狭い機能に加えて、Dockerコンテナーの経験がない場合は、マテリアルを入力する必要があります。







クベルネテス



公式ドキュメントに記載されているように、 Kubernetesは、オープンソースのコンテナ化されたアプリケーションの展開、スケーリング、および管理を自動化するためのシステムです。 Kubernetesは、すぐに使用できる使いやすいソリューションというよりも、フォールトトレラントでスケーラブルなコンテナー管理プラットフォームを構築するのに役立つフレームワークであると言って、このステートメントに追加します。 したがって、このテクノロジーを導入するためのしきい値は高くなります。







画像







ポッド :Kubernetesのコンテナは、ポッドと呼ばれるグループにグループ化されます。 通常、ポッドには1〜5個のコンテナが含まれます。







フラットネットワークスペース :Kubernetesネットワークモデルはフラットであり、Podが相互にやり取りできるようにします。 各Podeのコンテナは共通のIPを共有し、localhostのポートを使用して相互に通信します。







サービス :ポッドのアクセスポリシーを定義するポッドの抽象化。 サービスは、ポッド間で負荷を自動的に分散します。







レプリケーションコントローラー :サーバー内のPodの「レプリカ」の数を制御し、「レプリカ」の起動を保証してノードの動作を維持します。これにより、フォールトトレランスが向上します。







長所 :Kubernetesは無料で強力なツールです。 コンテナを管理でき、無限のスケーラビリティと自動化を組み合わせます。







短所 :勉強するのは簡単ではありません。 有能なOPSの手にある良いことですが、管理者のいない開発者はそれを厳しくする必要があります。







牧場主



Rancher-堅固なWebインターフェースのおかげで、開発の利便性と容易さへの一種のステップ。 牧場主は、複雑な環境の管理を容易にします。 彼は自分でコンテナを管理でき、他のスケジューラも管理できます。 たとえば、Rancherにない機能が必要な場合は、その上で同じKubernetesとDocker Swarmを実行できます。 それらは文字通りマウスを数回クリックするだけでそこに置かれます。これは手動で置くよりもずっといいです。







画像







また、Rancherには独自のインフラストラクチャにすばやくインストールできるアプリケーションの広範なカタログがあります 。 ただし、100%すぐに食べられるRancher製品に名前を付けることはできません。 ネイティブアプリケーションは、Dockerイメージからのみデプロイできます。 ソースは十分ではありません。環境を準備する必要もあります。 データベースのスケーリングにはいくつかの困難が伴います。 数回のマウスクリックで、構成をマスタースレーブまたはマルチマスターに変更すると失敗します。







長所 :間違いなく利点は、サービスとアプリケーションのカタログが利用可能になることです。 Rancherはまた、明確なWebインターフェースを備えており、KubernetesやDocker Swarmなどの他のオーケストレーションソリューションをすばやく起動できるため、柔軟性が向上しています。







短所 :それでも、Rancherは最も簡単なプラットフォームではないため、理解する必要があります。 独自のアプリケーションをデプロイするには、少なくともDockerイメージを作成できる必要があります。そのため、テクノロジーを導入するための一定のしきい値があります。







D2c



D2Cは、開発者向けのスケーラブルなアプリケーションの世界に入るための使いやすさと低しきい値を強調しています。 全体の焦点は、アプリケーションのソースと、それを起動するのに必要なサービスです。







画像







はい、ボンネットの下ではDockerコンテナも使用し、「マネージャー」としてのAnsibleの形の些細なオーケストレーションとはほど遠いですが、このキッチンはユーザーから隠されており、簡単な手順で表されるかなり明確なインターフェイスとして機能します。







画像







長所 :D2Cでは、開発者はスケーラブルなアプリケーションを開発する際にエンジンコンパートメントの履歴を掘り下げる必要がなく、深刻な問題でさえOPSなしで解決できます。 D2CはLetsencryptとも統合されており、テストホストには* .d2c.ioという形式のドメインを割り当てることができます。







D2Cを使用してコンテナー化されたクラスターシステムを作成するタスクを解決するには、開発者がサービスの構成の基本を理解し、クラウドでも、独自のサーバー上でも展開用のアプリケーションソースをシステムに提供するだけで十分です。







短所 :1台のホストの無料バージョンのみを削除し、フルバージョンを支払います。 経験豊富な管理者にとって、シンプルさの主な焦点は開発者向けであるため、サービスの柔軟性が十分でない場合があります。










それだけです! D2Cをテストして、すべてがどのように機能するかを確認し、デモにサインアップして、すべてを直接お伝えします。 ご質問がある場合は、コメントでお尋ねください-私は答えようとします。








All Articles