Swarmでのスケーリングとローリングアップデート
Swarm全体でサービスをスケールし、ダウンタイムなしのローリングアップデートを実行します。更新に失敗した場合は自動的にロールバックします。
「Swarmでのスケーリングとローリングアップデート」はCoddyKit上の無料Docker & DevOps Fundamentalsレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDocker & DevOps Fundamentals学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Docker & DevOps Fundamentalsコースには全4レッスンが含まれています。
サービスはスケール可能
Swarm では、service が同一のコンテナ replica をいくつ実行するかという望ましい数を定義します。Swarm manager は、ノード全体でその数が常に実行されるように調整します。
サービスをスケールする
docker service scale を使うと、いつでもレプリカ数を変更できます。スケジューラーは新しいタスクを利用可能なノードに分散します。
docker service scale web=5作成時にスケールを指定する
--replicas を使えば、サービスの作成時にレプリカ数を指定することもできます。
docker service create --name web --replicas 3 -p 80:80 nginxレプリカの状態を確認する
docker service ls で概要を確認し、docker service ps で各タスクと実行先のノードを確認します。
docker service ps webローリングアップデートとは
ローリングアップデートでは、レプリカを少しずつ置き換えるため、更新中もサービスを利用可能な状態に保てます。Swarm にはこの機能が組み込まれています。
更新を開始する
docker service update --image を使って、サービスの参照先を新しいイメージに変更します。Swarm は更新ポリシーに従ってタスクを段階的に置き換えます。
docker service update --image nginx:1.27 webロールアウトを制御する
並列実行数と遅延時間を設定してロールアウトを調整します。一度に変更するタスク数と、バッチ間で待機する時間を指定できます。
docker service update \
--update-parallelism 2 \
--update-delay 10s \
--image nginx:1.27 web更新失敗時のアクション
--update-failure-action に rollback を設定すると、更新に失敗した場合にサービスが壊れたままになるのを防ぎ、自動的に元の状態へ戻せます。
docker service update \
--update-failure-action rollback \
--image nginx:1.27 web手動でロールバックする
更新に問題がある場合は、docker service rollback を実行すると、サービスを直前の仕様にすぐ戻せます。
docker service rollback webヘルスチェックで更新を制御する
コンテナの HEALTHCHECK により、新しいレプリカが本当に準備完了しているかを Swarm に伝えられます。更新ポリシーと組み合わせることで、問題のあるタスクにトラフィックが移るのを防げます。
HEALTHCHECK --interval=10s CMD curl -f http://localhost/ || exit 1グローバルとレプリケート
レプリケートサービスは固定数のタスクを実行します。一方、グローバルサービスはノードごとに必ず 1 つのタスクを実行するため、ログ収集エージェントなどに適しています。グローバルモードではスケーリングは適用されません。
docker service create --mode global --name agent myagent簡単な確認
ローリングアップデートでは、どのようにサービスの可用性を維持しますか?
まとめ
これで、Swarm サービスを自信を持って運用できるようになりました。
docker service scaleでレプリカ数を変更しますservice update --imageでローリングアップデートを開始します- 並列実行数、遅延時間、
--update-failure-action rollbackで安全性を制御します service rollbackで元に戻し、ヘルスチェックで準備完了を確認します
これらを組み合わせることで、Swarm 上でダウンタイムのないデプロイを実現できます。
よくある質問
「Swarmでのスケーリングとローリングアップデート」レッスンは無料ですか?
はい。「Swarmでのスケーリングとローリングアップデート」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Docker & DevOps Fundamentalsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Docker & DevOps Fundamentalsコースには全4レッスンが含まれています。
「Swarmでのスケーリングとローリングアップデート」で何を学びますか?
Swarm全体でサービスをスケールし、ダウンタイムなしのローリングアップデートを実行します。更新に失敗した場合は自動的にロールバックします。 ブラウザで直接実行するハンズオンコードでDocker & DevOps Fundamentalsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Docker & DevOps Fundamentalsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDocker & DevOps Fundamentalsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「Swarmでのスケーリングとローリングアップデート」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDocker & DevOps Fundamentalsレッスンでコードを書いて実行できますか?
はい。すべてのDocker & DevOps Fundamentalsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Docker Swarm入門
- Swarmクラスターのセットアップ
- Swarmへのサービスのデプロイ
- Swarmでのスケーリングとローリングアップデート