始める前に
-
このガイドを完了するには、同じデータセンターに少なくとも2つのLinodeが必要です。このガイドの説明はUbuntu16.04用に書かれていますが、他のディストリビューションを使用することもできます。 Linodeは同じディストリビューションを使用する必要はありません。
-
コンピューティングインスタンスのセットアップと保護ガイドに従って、システムを更新してください。また、タイムゾーンの設定、ホスト名の構成、制限付きユーザーアカウントの作成、SSHアクセスの強化を行うこともできます。
-
各LinodeにDockerをインストールします。詳細については、DockerのインストールとLAMPスタックのデプロイガイドまたはDockerのインストールドキュメントを参照してください。
注 このガイドの手順には、root権限が必要です。必ず root
として以下の手順を実行してください またはsudo
プレフィックス。特権の詳細については、ユーザーとグループのガイドを参照してください。
Docker Swarmと呼ばれるDockerホストのクラスターを作成して、Dockerの能力をスケールアップします。 Docker Swarm Managerとして機能する1つのLinodeと、ノードとしてSwarmに参加するためのいくつかのDockerホストが必要です。
このガイドでは、Docker Swarm Managerをセットアップし、ノードを接続してスケーラブルなコンテナーをデプロイします。これには、Dockerがインストールされて同じデータセンターで実行されている複数のLinodeが必要です。同じディストリビューションを実行する必要はありません。
DockerSwarmManagerを作成する
Docker Swarm Managerの目的は、クラスターに代わってコマンドを受け取り、コンテナーをノードに割り当てることです。 Swarm Managerは、RaftConsensusAlgorithmを使用してSwarm状態を管理します。 Raft Consensus Algorithmは、クラスター内のタスクの管理とスケジューリングを担当するすべてのマネージャーノードが同じ一貫した状態を格納していることを確認します。障害が発生した場合、単一のノードがタスクを引き受け、安定した状態を復元します。
このガイドでは、単一のSwarmManagerを作成します。高可用性が目標の場合は、複数のマネージャーを作成できます。
-
Swarmマネージャー用に選択したLinodeにログインし、マネージャーを初期化します。
PUBLIC_IP
を置き換えます この例では、LinodeのパブリックIPアドレスを使用しています:docker swarm init --advertise-addr PUBLIC_IP
Dockerは、ノードがSwarmに参加するために必要なコマンドで応答します:
-
docker info
を使用する Swarmが実行され、アクティブであることを確認するには:docker info
ノードをマネージャーに参加させる
前のセクションのステップ1で、docker swarm init
コマンドは、マネージャーに参加する方法についての指示を出力します。
docker swarm join --token TOKEN PUBLIC_IP:2377
TOKEN
の場所 Swarmを初期化したときに表示される文字の長い文字列であり、PUBLIC_IP
SwarmManagerLinodeの公開IPアドレスです。トークンを覚えていない場合は、join-token
を実行してください swarm init
からの情報を表示するためのマネージャー コマンド:
docker swarm join-token worker
-
ノードをSwarmに参加させるには、
docker swarm join
を実行します。 ノードから。TOKEN
を変更します 前のセクションのステップ1のトークン、およびPUIBLIC_IP
マネージャーのパブリックIPへ:docker swarm join --token TOKEN PUBLIC_IP:2377
出力は、ノードがワーカーとして群れに加わったことを示しています。これで、1つのマネージャーと1つのノードを持つ小さなDockerSwarmクラスターができました。
-
手順1を繰り返して、必要な数のノードをSwarmに参加させます。
-
マネージャで、
docker node ls
を使用します マネージャーに関する情報とすべてのノードのリストを表示するには:docker node ls
DockerSwarmを使用してサービスをデプロイする
Docker Swarmを使用してサービスをデプロイするには、マネージャーを使用して単一ノードを準備してから、スケールします ニーズに合わせた構成。この例では、1つのノードにNGINXをインストールしてから、3つのノードのクラスター(スウォーム)にスケーリングします。
-
Swarm Managerから、
service create
を使用します ノードにサービスをデプロイします。nginxexample
を変更します 好きなように:docker service create -p 80:80 --name nginxexample nginx
-
NGINXサービスを3つのノードにスケーリングします:
docker service scale nginxexample=3
-
docker ps -a
を使用してサービスがデプロイされていることを確認します 任意のノードから:docker ps -a
-
nginxexample
を停止するには サービス、service remove
を使用します コマンド:docker service remove nginxexample
詳細情報
このトピックの詳細については、次のリソースを参照してください。これらは有用であることを期待して提供されていますが、外部でホストされている資料の正確性や適時性を保証することはできません。
- Docker Docs
- DockerTryitチュートリアル
- DockerHub