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. 監視とメンテナンス: サービスの健康状態やリソース使用率を定期的に確認し、必要な調整を行います。
関連記事: