swarm は Docker が公式に提供しているクラスタ管理ツールで、主な機能は複数の Docker ホストを全体として抽象化し、それらの Docker ホスト上のさまざまな Docker リソースを 1 つの入り口から一元管理することです。
このチュートリアルの動作環境: linux5.9.8 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
Swarm は、Docker クラスターを管理するために Docker によって起動されたプラットフォームです。ほぼ完全に GO 言語を使用して開発されています。コードは https://github.com/docker/swarm でオープン ソースです。これはグループです。 Docker ホストは単一の仮想ホストになり、Swarm は標準の Docker API インターフェイスをフロントエンド アクセスの入り口として使用します。つまり、さまざまな形式の DockerClient (compose、docker-py など) が Swarm と直接通信でき、 Docker 自体もすべて Swarm と簡単に統合できるため、ユーザーは元々単一ノードに基づいていたシステムを Swarm に移植することが非常に容易になります。同時に、Swarm には Docker ネットワーク プラグインのサポートが組み込まれており、ユーザーは簡単にデプロイできます。クロスホストコンテナクラスターサービス。
Swarm は Kubernetes に似ていますが、kubernetes よりも軽量で機能が少なくなっています。
Docker Swarm は、エンタープライズ レベルの Docker セキュリティ クラスターとマイクロサービス アプリケーション オーケストレーション エンジンの 2 つの側面で構成されています。
クラスタリングの観点から見ると、Swarm は 1 つ以上の Docker ノードを編成して、ユーザーがクラスター内でそれらのノードを管理できるようにします。
Swarm には、暗号化された分散クラスター ストア、暗号化されたネットワーク、パブリック TLS (相互 TLS)、セキュア クラスター アクセス トークン (セキュア クラスター参加トークン)、およびデジタル処理を簡素化する一連の PKI (公開キー インフラストラクチャ) が組み込まれています。証明書の管理。ノードは自由に追加または削除できます。
オーケストレーションの点では、Swarm は複雑なマイクロサービス アプリケーションのデプロイと管理を容易にする豊富な API セットを提供します。宣言型構成ファイルでアプリケーションを定義すると、ネイティブの Docker コマンドを使用してアプリケーションをデプロイできます。
さらに、ローリング アップグレード、ロールバック、拡張および縮小操作も実行でき、これらも簡単なコマンドに基づいて完了できます。
これまで、Docker Swarm は Docker エンジンをベースとした独立した製品でした。 Docker バージョン 1.12 以降、Docker エンジンに完全に統合されており、単一のコマンドを実行するだけで有効化できます。 2018 年までに、ネイティブの Swarm アプリケーションに加えて、Kubernetes アプリケーションのデプロイと管理が可能になる予定です。
Docker Swarm の予備的な概要
クラスターの観点から見ると、Swarm は 1 つ以上の Docker ノードで構成されます。これらのノードは、物理サーバー、仮想マシン、Raspberry Pi、またはクラウド インスタンスにすることができます。唯一の前提条件は、すべてのノードが信頼できるネットワークを介して接続されていることです。
ノードは管理ノード (Manager) またはワーカー ノード (Worker) として構成されます。管理ノードはクラスターのコントロール プレーン (コントロール プレーン) を担当し、クラスターのステータスの監視や作業ノードへのタスクの分散などの操作を実行します。ワーカーノードは管理ノードからタスクを受け取り、実行します。
Swarm の構成およびステータス情報は、すべての管理ノードにある分散 etcd データベースに保存されます。データベースはメモリ内で実行され、データを最新の状態に保ちます。このデータベースの最も優れた点は、構成がほとんど必要なく、Swarm の一部としてインストールされ、管理が必要ないことです。
クラスター管理に関して、最大の課題はセキュリティの確保です。 Swarm クラスターをセットアップする場合、TLS は Swarm と緊密に統合されているため、必然的に使用することになります。
セキュリティ意識が高まっている今日の時代では、このようなツールは積極的に推進されるべきです。 Swarm は、通信の暗号化、ノード認証、およびロールの承認に TLS を使用します。自動キーローテーションはさらに素晴らしい機能です。バックグラウンドで静かに動作するため、ユーザーはこの機能の存在にさえ気づきません。
アプリケーション オーケストレーションに関しては、Swarm の最小スケジューリング単位はサービスです。これは Swarm とともに導入され、API の新しいオブジェクト要素であり、コンテナに基づいたいくつかの高度な機能をカプセル化した上位レベルの概念です。コンテナーがサービスにカプセル化されると、それはタスクまたはコピーと呼ばれ、サービスには拡張と縮小、ローリング アップグレード、単純なロールバックなどの機能が追加されます。
要約すると、次の図に示すように、Swarm を一般的な観点から見てみましょう。
推奨学習: 「docker ビデオ チュートリアル 」
以上がdocker swarmとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。