GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS 7 /RHEL7にDockerSwarmモードをインストールして構成する方法

Docker Swarmモードは、Dockerホストを管理するためのコンテナーのオーケストレーションおよびクラスタリングツールです。 Docker Swarmモードは、Dockerエンジンのネイティブ部分です。これは、DockerスウォームモードがDockerエンジンの一部であるため、Dockerエンジン以外のものをインストールする必要がないことを意味します。

DockerスウォームモードはDocker1.12で導入されました。 Dockerスウォームモードの主な利点のいくつかは、コンテナーの自己修復です。 、負荷分散コンテナのスケールアップ およびスケールダウンサービスディスカバリ およびローリングアップデート 。最後の数件の記事で、次のトピックについて説明しました

  • CentOS7にDockerをインストールする方法
  • Dockerfileを使用してDockerコンテナイメージを構築する方法

この記事では、CentOS 7.x / RHEL7.xにDockerSwarmモードをインストールして構成する方法について説明します。デモでは、3つの CentOS 7.xを使用します。 またはRHEL7.x Dockerエンジンをインストールするサーバー。そのうち2台のサーバーがDockerエンジンとして機能します またはワーカーノード 1人はマネージャーとして機能します 。私の場合、私は以下を使用しています:

  • dkmanager.example.com(172.168.10.70)– Dockerエンジン、ホスト、またはワーカーノードを管理するマネージャーとして機能し、Dockerエンジンとしても機能します。
  • workernode1.example.com(172.168.10.80)–Dockerエンジンまたはワーカーノードとして機能します
  • workernode2.example.com(172.168.10.90)–Dockerエンジンまたはワーカーノードとして機能します

すべてのサーバーの/etc/hostsファイルの次の行を更新します

 172.168.10.70 dkmanager.example.com dkmanager172.168.10.80 workernode1.example.com workernode1172.168.10.90 workernode2.example.com workernode2 

ステップ:1すべてのホストにDockerEngineをインストールします

最初にDockerリポジトリを設定してから、すべてのホストでコマンドの下で実行します。

 [[email protected]〜]#yum install yum-utils –y [[email protected]〜]#yum-config-manager --add-repo https://download.docker.com/linux/centos/ docker-ce.repo [[email protected]〜]#yum install docker-ce docker-ce-cli containerd.io –y [[email protected]〜]#systemctl start docker [[email protected]〜]#systemctl enable docker 

workernode1とworkernode2について上記の手順を繰り返します

注:この記事の執筆時点では、Dockerバージョン1.13が利用可能でした。

ステップ:2マネージャーノードとワーカーノードでファイアウォールポートを開く

以下のコマンドを使用して、DockerマネージャーのOSファイアウォールで次のポートを開きます

 [[email protected]〜]#firewall-cmd --permanent --add-port =2376 / tcpsuccess [[email protected]〜]#firewall-cmd --permanent --add-port =2377 / tcpsuccess [ [email protected]〜]#firewall-cmd --permanent --add-port =7946 / tcpsuccess [[email protected] ager〜]#firewall-cmd --permanent --add-port =7946 / udpsuccess [[email protected ]〜]#firewall-cmd --permanent --add-port =4789 / udpsuccess [[email protected]〜]#firewall-cmd --permanent --add-port =80 / tcpsuccess [[email protected]〜]# Firewall-cmd --reloadsuccess [[email protected]〜]#

DockerManagerでDockerサービスを再起動します

 [[email protected]〜]#systemctl restart docker 

各ワーカーノードで次のポートを開き、Dockerサービスを再起動します

〜]#firewall-cmd --permanent --add-port =2376 / tcp〜]#firewall-cmd --permanent --add-port =7946 / tcp〜]#firewall-cmd --permanent- add-port =7946 / udp〜]#firewall-cmd --permanent --add-port =4789 / udp〜]#firewall-cmd --permanent --add-port =80 / tcp〜]#firewall-cmd- -reload〜]#systemctl restart docker 

ステップ:3「dockerswarminit」コマンドを使用してスウォームまたはクラスターを初期化します

マネージャーノード(dkmanager)から以下のコマンドを実行して、クラスターを初期化します。

 [[email protected]〜]#docker swarm init --advertise-addr 172.168.10.70 

このコマンドは、ノードをマネージャーノードにします。また、スレーブノードまたはワーカーノードがクラスターに参加できるように、上記のコマンドでマネージャーのIPアドレスをアドバタイズします。

以下のコマンドを実行して、マネージャーのステータスを確認し、クラスター内のノードのリストを表示します

 [[email protected]〜]#docker node lsID HOSTNAME STATUS AVAILABILITY MANAGER STATUSn64oy2sml1w188ps109mai67b *dkmanager。 

Docker情報」も使用できます 」コマンドを使用して、群れのステータスを確認します

ステップ:3スウォームまたはクラスターにワーカーノードを追加する

スウォームまたはクラスターにワーカーノードを追加するには、スウォームを初期化するときに取得するコマンドを実行します。サンプルコマンドはステップ3に示されています

 [[email protected]〜]#docker swarm join --token SWMTKN-1-4jjyu1btmdky0ou6gl2dwgt24bolpsdn5yd77pohmcnmz0s288-11xwcvzjar29fskkhfvlzsmhr 172.168.10.70:2377このノードは、ワーカーとして群れに参加しました。 〜]#docker swarm join --token SWMTKN-1-4jjyu1btmdky0ou6gl2dwgt24bolpsdn5yd77pohmcnmz0s288-11xwcvzjar29fskkhfvlzsmhr 172.168.10.70:2377このノードはワーカーとして群れに参加しました。[[メール保護]〜]# 

コマンド「dockernode ls 」を使用して、ノードのステータスを確認します 」DockerManagerから

この時点で、Dockerスウォームモードまたはクラスターは2つのワーカーノードで稼働しています。次のステップでは、サービスを定義する方法を説明します。

ステップ:4DockerSwarmモードでサービスを起動する

Dockerスウォームモードでは、コンテナはタスクという単語に置き換えられます タスク(またはコンテナ)が起動され、サービスとしてデプロイされます。「webserver」という名前のサービスを作成したいとします コンテナが5つあり、サービス内のコンテナの望ましい状態が5であることを確認したい。

DockerManagerからのみ以下のコマンドを実行します。

 [[email protected]〜]#docker service create -p 80:80 --name webserver --replicas 5 httpd7hqezhyak8jbt8idkkke8wizi [[email protected]〜]#

上記のコマンドは、「webserver」という名前のサービスを作成します。このサービスでは、コンテナーまたはタスクの目的の状態は5であり、コンテナーはDockerイメージ「 httpd」から起動されます。 「。コンテナはクラスタノード、つまり dkmanagerにデプロイされます 、 workernode1 およびworkernode2

以下のコマンドでDockerサービスを一覧表示します

 [[email protected]〜]#docker service lsID NAME MODE REPLICAS IMAGE7hqezhyak8jb webserver Replicated 5/5 httpd:latest [[email protected]〜]#

以下のコマンドを実行して、サービス「ウェブサーバー」のステータスを表示します

 [[email protected]〜]#docker service ps webserver 

上記の出力のように、コンテナーがマネージャーノードを含むクラスターノード全体にデプロイされていることがわかります。これで、次のURLを使用して、任意のワーカーノードおよびDockerManagerからWebページにアクセスできます。

http://172.168.10.70またはhttp://172.168.10.80またはhttp://172.168.10.90

ステップ:5コンテナの自己修復をテストする

コンテナの自己回復は、DockerSwarmモードの重要な機能です。名前が示すように、コンテナーに問題がある場合、マネージャーはサービス「webserver」に対して少なくとも5つのコンテナーが実行されている必要があることを確認します。コンテナをworkernode2から削除して、新しいコンテナが起動されるかどうかを確認しましょう。

 [[email protected]〜]#docker ps [[email protected]〜]#docker rm a9c3d2172670 -f 

次に、Docker Managerからサービスを確認し、新しいコンテナーが起動されるかどうかを確認します

 [[email protected]〜]#docker service ps webserver 

上記の出力のように、workernode2のコンテナの1つが削除されたため、dkmanagerノードで新しいコンテナが起動されたことがわかります

ステップ:6サービスに関連付けられたコンテナーのスケールアップとスケールダウン

Dockerスウォームモードでは、コンテナーまたはタスクをスケールアップおよびスケールダウンできます。サービス「ウェブサーバー」のコンテナを7つにスケールアップしましょう ‘

 [[email protected]〜]#docker service scale webserver =7webserver scaled to 7 [[email protected]〜]#

次のコマンドを使用して、サービスステータスを再度確認します

サービスウェブサーバーのコンテナを4つに縮小しましょう

 [[email protected]〜]#docker service scale webserver =4webserver scaled to 4 [[email protected]〜]#

以下のコマンドを使用して、サービスを再度確認します

この記事は以上です。 CentOS7.xおよびRHEL7.xにdockerswarmモードをインストールして構成する方法を理解していただければ幸いです。フィードバックやコメントをお気軽に共有してください🙂


Cent OS
  1. Rocky Linux /Centos8でdockerをインストールして構成する方法

  2. CentOS / RHEL 7 :telnet をインストールして構成する方法

  3. CentOS / RHEL に Samba をインストールして構成する方法

  1. RHEL 8 / CentOS8LinuxシステムにRをインストールして構成する方法

  2. RHEL 8 /CentOS8にsambaをインストールして設定する方法

  3. CentOS 7 /RHEL7にDockerをインストールする方法

  1. DockerCEをRHEL8/CentOS8にインストールする方法

  2. CentOS 7 /RHEL7にoVirt4.0をインストールして構成する方法

  3. CentOS7およびRHEL7にJenkinsをインストールして構成する方法