GNU/Linux >> Linux の 問題 >  >> Ubuntu

UbuntuでDockerSwarmクラスターをセットアップおよび構成する方法

Docker Swarmは、Dockerホストのクラスターをデプロイできるようにするツールです。これはDockerが提供するネイティブのクラスタリングツールであり、スウォームクラスター内のすべてのノードに分散することで、アプリケーションに高可用性と高性能を提供します。

このチュートリアルでは、Ubuntu16.04を使用してSwarmクラスターを作成する方法を段階的に説明します。 2台のubuntuサーバーマシンを使用してスウォームクラスターを作成します。1台のサーバーノードをマネージャーとして、もう1台をワーカーとして使用します。次に、単純なNginxサービスをswarmクラスターにデプロイしようとします。

前提条件
  • 2つ以上-Ubuntu16.04サーバー
    • マネージャー132.92.41.4
    • worker01 132.92.41.5
  • root権限

何をしますか?

  1. ホストの構成
  2. Docker-ceをインストールします
  3. DockerSwarmの初期化
  4. クラスターへの最初のサービスの展開
ステップ1-ホストを構成する

swarmクラスターのパッケージをインストールする前に、両方のサーバーでhostsファイルを構成します。

以下のコマンドをすべてのサーバー、「manager」および「worker01」で実行します。

vimエディタを使用して「/etc/hosts」ファイルを編集します。

vim /etc/hosts

次の構成を行の最後に追加します。

132.92.41.4    manager
132.92.41.5    worker01

保存して終了します。

ここで、IPアドレスを使用する代わりに「hostname」を使用してすべてのノードにpingを実行します。

ping -c 3 manager
ping -c 3 worker01

そして、それがすべてのホストで機能していることを確認してください。

ステップ2-Docker-ceをインストールします

スウォームクラスターを作成するには、すべてのサーバーノードにdockerをインストールする必要があります。このステップでは、サーバーマネージャーとworker01の両方にDocker-ceCommunityEditionをインストールします。

以下のaptコマンドを使用してDocker-ceの依存関係をインストールします。

sudo apt install apt-transport-https software-properties-common ca-certificates -y

次に、DockerキーとDocker-ceリポジトリをサーバーに追加します。

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" > /etc/apt/sources.list.d/docker-ce.list

リポジトリを更新し、以下のaptinstallコマンドを使用してDocker-ceパッケージをインストールします。

sudo apt update
sudo apt install docker-ce -y

インストールが完了したら、Dockerサービスを開始し、システムの起動時に毎回起動できるようにします。

systemctl start docker
systemctl enable docker

Docker-ceがサーバーノードにインストールされました。

次に、通常のユーザーまたは非rootユーザーとして実行するようにdockerを構成します。

「mohammad」という名前の新しいユーザーを作成し、「docker」グループに追加します。

useradd -m -s /bin/bash mohammad
sudo usermod -aG docker mohammad

次に、「mohammad」ユーザーにログインし、以下のようにdockerhello-worldコマンドを実行します。

su - mohammad
docker run hello-world

そして、以下に示すように、dockerからhelloworldを取得します。

ステップ3-Swarmクラスターを作成する

このステップでは、ノードのSwarmClusterを作成します。また、スウォームクラスターノードを作成するには、「manager」ノードでスウォームモードを初期化してから、「worker01」ノードをクラスターに参加させる必要があります。

以下の「manager」ノードでdockerコマンドを実行して、DockerSwarmモードを初期化します。

docker swarm init --advertise-addr 132.92.41.4

そして、以下のような結果が得られます。

「join-token」が「manager」ノードによって生成されたことがわかります。

次に、「worker01」ノードをクラスター「manager」に追加する必要があります。そのためには、クラスターの「マネージャー」ノードから「参加トークン」が必要なので、必ずメモに書き込んでください。

'worker01'ノードでdockerswarmjoinコマンドを実行します。

docker swarm join --token SWMTKN-1-5p5ujrr67rl2rlmyvrj56fksblbcrtaeirf7fj5r4snid2vn6y-918gbqr02m64xct43i2ssi4qs 132.92.41.4:2377

これで、次のような結果が得られます。

'worker01'ノードがクラスターに参加しました。

'manager'ノードで次のコマンドを実行して確認してください。

docker node ls

これで、「worker01」ノードが群れクラスターに参加していることがわかります。

スウォームクラスターが作成されました。

ステップ4-クラスターへの最初のサービスのデプロイ

このステップでは、最初のサービスを作成してスウォームクラスターにデプロイします。デフォルトのhttpポート80で実行される新しいサービスNginxWebサーバーを作成し、それをホストサーバーのポート8080に公開してから、swarmクラスター内でnginxサービスを複製しようとします。

サービスの作成

'my-web'という名前の新しいNginxサービスを作成し、コンテナーのHTTPポートをホストのポート8080に公開します。

docker service create --name my-web --publish 8080:80 nginx:1.13-alpine

作成したら、以下のdockerserviceコマンドを使用して確認してください。

docker service ls

そして、以下のような結果が得られます。

Nginxサービスは、「my-web」という名前のサービスとして作成され、swarmクラスターにデプロイされています。これは、Nginx Alpine Linuxに基づいており、コンテナーサービスのHTTPポートをホストのポート「8080」に公開します。レプリカは1つだけです。

レプリカとサービスのスケーリング

次に、「my-web」サービスのレプリカを作成します。 「my-web」サービスのレプリカを2つ作成するので、「manager」ノードと「worker01」ノードでサービスにアクセスできます。

'my-web'サービスを複製するには、次のコマンドを実行します。

docker service scale my-web=2

完了したら、dockerserviceコマンドを使用してもう一度確認します。

docker service ls

そして今、サーバーには2つのレプリケートがあります。

Webブラウザーを開き、ポート8080でマネージャーノードのIPアドレスを入力します。

http:// manager:8080 /

そして、Nginxのデフォルトページが表示されます。

以下は「worker01」ノードの結果です。

http:// worker01:8080 /

Swarm Clusterが作成され、NginxサービスがSwarmClusterにデプロイされました。


Ubuntu
  1. Ubuntu18.04にRedisをインストールして構成する方法

  2. Ubuntu18.04にRedmineをインストールして設定する方法

  3. Ubuntu20.04でMariaDBGaleraクラスターをセットアップする方法

  1. Ubuntu18.04にSambaをインストールして設定する方法

  2. Ubuntu20.04にRedisをインストールして構成する方法

  3. Ubuntu20.04にJenkinsをインストールして構成する方法

  1. Ubuntu18.04にDockerをインストールしてセットアップする方法

  2. Ubuntu18.04LTSにKubernetesとDockerをインストールして設定する方法

  3. Ubuntu18.04でRiakKVデータベースクラスターをセットアップする方法