2026年8月10日

2026年8月10日

Docker Swarmでクラスターを構成する方法

はじめに

Docker Swarmは、Dockerの内蔵クラスタリングおよびサービス管理ツールです。これを使用することで、複数のDockerホスト(ノード)間でコンテナ化されたアプリケーションを効率的に分散管理することができます。特に大規模なデプロイメントや高可用性が必要なシナリオでは、Swarmが不可欠となります。

症状・背景

  • Docker Swarmを使用することで、複数のホスト間でリソースを均一に分配し、サービスの冗長化を行うことができます。
  • サービスの自動リバランスやフェイルオーバー機能により、高可用性を確保できます。
  • デプロイメント管理が容易になり、一元的にサービスを展開・監視することができます。

手順・設定方法

ステップ1: Dockerホストの準備

# すべてのノードに同じ命令を実行します。
$ sudo apt-get update && sudo apt-get install -y docker.io

ステップ2: Swarmクラスターの初期化

# マスターノードでSwarmクラスターを初期化します。
$ docker swarm init --advertise-addr <マスターノードのIPアドレス>

ステップ3: ノード追加と確認

# 他のノードにSwarmクラスターに参加させるために、上記の命令の出力からトークンを使用します。
$ docker swarm join --token <トークントークン> <マスターノードのIPアドレス>:2377

ステップ4: サービスデプロイと監視

# Swarmクラスター内でサービスをデプロイします。
$ docker service create --name myservice --replicas 5 nginx

注意事項

  • ノードの追加や削除は慎重に行う必要があります。ノードが不適切に追加されると、ネットワーク状況や負荷分布に影響を及ぼす可能性があります。
  • Swarmクラスター内での通信プロトコル(gRPC)を使用しているため、ノード間でSSH接続は不要です。
  • 重要な設定変更をする際には、サービスのデプロイメント状況を確認し、必要ならバックアップを取りましょう。

まとめ

1. Swarmクラスターの初期化: マスターノードで初期化命令を実行します。初期化時にトークンが生成されます。

2. ノード追加: 初期化時に生成されたトークンを使用して、他のノードにSwarmクラスターに参加させます。

3. サービスデプロイ: Swarmクラスター内でサービスをデプロイし、必要なレプリカ数を設定します。

4. 監視とメンテナンス: サービスの健康状態やリソース使用率を定期的に確認し、必要な調整を行います。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ