
コンテナが企業に旋風を巻き起こした理由の一つは、必要に応じて簡単にスケールアップ・スケールダウンできることです。コンテナのこの側面は非常に重要であるため、一部の開発者は、需要に応じてデプロイメントを自動スケールできるようにするために、特別な努力を払っています。
しかし、すべてのデプロイメントにそこまでの柔軟性が必要なわけではありません。手動スケーリングのメリットが期待できるコンテナサービスのデプロイメントには、コマンドラインが常に存在します。これは全く難しいことではありません(その方法については、私の記事「Docker Swarmクラスターにサービスをデプロイする方法」をご覧ください)。
コンテナに関するあらゆる操作をGUIで行いたい方には、私のお気に入りの管理プラットフォーム、Portainerがあります。Portainerを使えば、デプロイ済みのDockerサービスを必要に応じて簡単にスケールアップまたはスケールダウンできます。そこで今回は、Portainerを使ってDockerサービスをスケールアップ(スケールダウン)する方法について解説します。
参照: 採用キット: クラウド エンジニア (TechRepublic Premium)
必要なもの
この方法でサービスをスケールするには、Docker SwarmにデプロイされたPortainerの実行インスタンスが必要です。SwarmとPortainerの両方をデプロイするプロセスの概要を説明し、その後、新しいサービスをスケールしてみましょう。
Docker Swarmのデプロイ方法
このプロセスを本質的な部分まで絞り込んで説明します。少なくとも3台のマシンが必要です。ここではUbuntu Server 22.04でデモを行います。各マシンに以下のコマンドでDockerをインストールします。
sudo apt-get docker.io -y
次のコマンドを使用して、ユーザーが docker グループ (各マシン上) にアクセスできることを確認します。
sudo usermod -aG docker $USER
ログアウトして再度ログインしてください。
Docker コントローラーで、次のコマンドを使用して Swarm を初期化します。
docker swarm init --advertise-addr SERVER
SERVER
コントローラーの IP アドレスはどこですか。
これにより、各ノードでSwarmに接続するために実行する必要があるコマンドが出力されます。すべてが正常に動作することを確認し、後で操作するサービスを用意するために、次のコマンドでサービスをデプロイします。
docker service create -p 8001:80 --name webservice nginx
Portainerの展開方法
Portainerをデプロイします。まず、以下のコマンドでボリュームを作成します。
docker volume create portainer_data
次のコマンドで Portainer をデプロイできるようになりました。
docker run -d -p 8000:8000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data
portainer/portainer-ce
1~2分後、Webブラウザでhttps://SERVER:9443(SERVER
ホスティングサーバーのIPアドレス)にアクセスします。これでPortainerの準備が整いました。
Portainerでサービスをスケールする方法
DockerとPortainerが稼働するようになったので、次はSwarmにサービスをスケールしてみましょう。デプロイしたノードは合計3つだけなので、これがスケーリングの限界です。
Portainer 内で、左側のサイドバーの [サービス] をクリックすると、先ほどコマンド ラインから作成したテスト サービスが表示されます (図 A )。
図A

「スケジューリングモード」列(左から4番目)に、複製された「1/1 スケール」が表示されます。「1/1」と「スケール」の間には、上下矢印があります。サービスをスケールアップするには、矢印をクリックし、表示されるフィールドに値を入力する3
か、上矢印を使用して、サービスを3つのノードすべてにスケールアップします(図B)。
図B

サービスのスケーリングには少し時間がかかります。最初は1/3と表示されますが、最終的には3/3と表示されるはずです。これは、3つのノードすべてへのスケーリングに成功したことを意味します。サービスのスケーリングが完了したことを確認するには、Portainer Servicesページを更新する必要がある場合があります(図C)。
図C

皆さん、Portainerを使ってサービスをスケールさせるには、これで全てです。これ以上簡単なことはありません。
TechRepublic アカデミーの以下のリソースを活用して、初心者から Docker 認定資格者になりましょう。
- Dockerコンテナのハッキングとセキュリティ保護
- Linux と Docker のコーディングバンドル
- Docker および Kubernetes 認定トレーニング バンドル
Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。