TIL(2020.12.13)
Docker
udemy - Docker Mastery: with Kubernetes +Swarm from a Docker Captain
Swarm Intro and Creating a 3-Node Swarm Cluster
Docker Swamコンセプト
コンテナを使用すると、任意の環境で簡単に配置できますが、別の問題が発生します.
上記の様々な問題を解決するために,複数のdocker hostを1つのように扱うことができるオーケストラを開発した.
Swarm Mode
のように、マルチコンテナパッケージアプリケーションを配備する際に使用されるコンテナ、リソースの自動化、ソート、調整、および管理は、container orchestration
と呼ばれる.Docker Swamは2014年からのOrchestrationツールについても言及するとともに、2016年バージョン1.12からのSwamkitの機能についても言及した.この2つの機能は同じですが、個別のプロジェクトとして存在します.
1.12バージョンの移行はDockerとは独立しているが、その後SwarmkitはDockerに構築される.
このコースではbullit-inの
Docker Swarm Mode
について説明します.
Swarm Mode
はManagerとWorkerに分けられ、各マネージャはSwarmを介して各従業員と通信することができる.アクセスが許可されているマネージャのみがWorkerと通信し、情報を交換できます.
分散システムで環境を共有するアルゴリズムを
consensus algorithm
と呼び,docker swarmはRaftというアルゴリズムによってswarmで環境を共有する.前述したように、Managerはクラスタの状態を維持し、時間を手配し、SwamモードHTTP APIエンドポイントを提供するなどの機能を有する.Workerは、Managerによって割り当てられたTaskを実行します.
Docker EngineをSwam Modeに参加させると、サービスが作成されます.サービスは,ユーザが単位業務をDockr Swarmに割り当てる論理ユニットであり,Swarmにより複数のTaskに分割して処理する.次に、分割されたTaskは各容器と1:1で一致する.


サービスが作成されると、ユーザーは既存のDocker APIではなく新しいSwam APIを介してマネージャと通信し、マネージャは各タスクをWorkerに割り当てます.
Docker Swam設定
docker info

Swarm: inactive
と確認されました.Swarmを構成するために初期化します.

Initが実行される瞬間、さまざまな環境が構成されます.
docker node ls
生成されたManager Nodeを表示できます.
サービスを作成すると、次のように自動的に名前が付けられ、サービスが生成されます.

現在生成されているサービスを更新し、3つのタスクコピーを生成します.


前述したように、3つのタスクが生成され、実行されています.

コンテナを削除すると、自動的に別のコンテナが実行されます.サービスを常に稼働させることです.したがって、すべてのコンテナを削除するには、サービス自体を削除する必要があります.
Creating 3-Node Swarm: Host Options
3つのLinux環境では,各ノードをswarmで管理する方法を学習する.
このため、dockerマシンとvirtualboxをインストールします.
dockerマシンは、コマンドによって1台のホストではなく複数のホスト上でDocker実行環境を自動的に生成するツールです.

3つのlinux環境を作成しdocker swarmを生成します.

node 1から発行されたtokenにより、node 2はswarmに加えられる.最初の労働者としてswarmに加入した.workerはswarmコマンドを使用できません.そのためmanagerに更新する必要があります.


swarmに参加したjoin tokenは、次のコマンドでいつでも確認できます.

上記のように、ノード3はswarmに参加してManagerで更新することも可能である.
Reference
この問題について(TIL(2020.12.13)), 我々は、より多くの情報をここで見つけました https://velog.io/@monsterkos/TIL2020.12.13テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol