0Pricing
Docker & DevOps Fundamentals · レッスン

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Docker Swarm入門
  2. Swarmクラスターのセットアップ
  3. Swarmへのサービスのデプロイ
  4. Swarmでのスケーリングとローリングアップデート
← Docker & DevOps Fundamentalsに戻る