Ubuntu 22.04にDocker Swarmをデプロイする方法 - TechRepublic

Ubuntu 22.04にDocker Swarmをデプロイする方法 - TechRepublic
ソフトウェア開発者とコンピュータスクリプトのプログラミングコードの抽象的な技術背景
画像: monsitj/Adobe Stock

Dockerは、私が頼りにしているコンテナデプロイメントのランタイムエンジンです。これを使えば、コンテナをネットワークに簡単にアクセスできるように素早くデプロイできます。では、これらのアプリケーションをスケールさせたい場合、どうすればいいでしょうか?単一のDockerサーバーでスケールさせるのは困難です。そこで、複数のDockerインスタンスをデプロイし、それらをクラスタ化します。これは、Docker Swarmと呼ばれます。

参照: 採用キット: バックエンド開発者 (TechRepublic Premium)

私のデファクトスタンダードであるサーバーディストリビューション、UbuntuにDocker Swarmをデプロイする方法をご紹介します。かなり細かい作業が必要なので、早速始めましょう。

Docker Swarmをデプロイするために必要なもの

3ノードクラスター(コントローラー1台とノード2台)でデモを行います。そのためには、Ubuntu Server 22.04のインスタンスが3つ必要です。また、sudo権限を持つユーザーも必要です。

Dockerの最新バージョンをインストールする方法

これを Swarm のすべてのノードで実行する必要があります。

まず、次のコマンドで Docker GPG キーを追加します。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

次に、公式 Docker リポジトリを追加します。

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

次に、次のコマンドでいくつかの依存関係をインストールします。

sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y

最後に、Docker エンジンの最新バージョンをインストールします。

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y

最後に、次のコマンドを使用してユーザーを docker グループに追加します。

sudo usermod -aG docker $USER

変更を有効にするには、ログアウトして再度ログインしてください。

サーバーのホスト名を変更する方法

Docker Swarmサーバーのホスト名を変更しましょう。これはすべてのノードで実行されます。ここではdocker1、docker2、docker3と設定しますが、好きな名前を付けることができます。

ホスト名を設定するには、次のコマンドを実行します。

sudo hostnamectl set-hostname HOSTNAME

ここで、HOSTNAME はマシンのホスト名です。

ホストファイルのマッピング方法

これもすべてのノードで実行されます。次のコマンドでhostsファイルを開きます。

sudo nano /etc/hosts

ファイルの下部で、各ホストを次のようにマッピングします (エントリをホスト名と IP アドレスに合わせて変更します)。

192.168.1.60 docker1
192.168.1.61 docker2
192.168.1.62 docker3

ファイルを保存して閉じます。

Swarmの初期化方法

コントローラー ノード (docker1) に移動し、コマンドを使用して Swarm を初期化し、IP アドレスをニーズに合わせて編集してください。

docker swarm init --advertise-addr 192.168.1.60

次に、次のような join コマンドが表示されます。

docker swarm join --token SWMTKN-1-05rgkgq9hgvas7wfglzrumxymzxw3downs1afcbdr9kc7hq4cm-8ku8kxjsq57l1xnkl5lzjppro 192.168.1.60:2377

各ノードでこのコマンドを実行してください。ノードが参加したら、コントローラーノードで次のコマンドを実行してSwarmを確認できます。

docker node ls

出力には次のようなものが表示されます。

tpsl7enzswhkeef3dh8uswkxp *   docker1    Ready     Active         Leader     20.10.17
xnye548afhe1hc832kulh5sui      docker2    Ready     Active                          20.10.17
cammaze2fcfcomjpdo0fwz105   docker3    Ready     Active                          20.10.17

おめでとうございます。Docker Swarm のデプロイメント準備が完了しました。必要に応じて新しいノードを追加することで、さらにスケーリングとフェイルオーバー機能を強化することができます。

Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。

Tagged: