アップデート手順

Swarm クラスタ構成 (ke2/cluster/swarm) の基本的なアップデート手順を示します。

リリースによっては特別なアップデート手順が指定される場合がありますので、アップデート作業前には必ずリリースノートを確認するようにしてください。

アップデート時のパラメータ適用について

環境変数や設定ファイルの変更は、コンテナの再作成によって反映されます (restart しただけでは反映されません)。以下のアップデート手順は再作成を伴うため、手順どおりに実施すれば反映されます。

また、リリースによっては新しい環境変数 (既定値つき) が追加されることがあります。既定値のまま利用する場合は特別な操作は不要ですが、既定値から変更している場合や独自にカスタマイズしている場合は、更新後に各構成の指定方法に従って改めて適用してください。

ここでは GlusterFS や Pgpool-II/PostgreSQL のアップデートについては対象外としています。

注意事項

クラスタ構成を部分的に順次アップデートしていくローリングアップデートには対応していません。 システム全体を停止させてアップデートを行なう手順をとるため、アップデート作業中はサービス停止状態になりますのでご注意ください。

また、実行中のジョブフロープロセスが存在すると強制的に異常終了となります。 可能であれば、すべてのジョブフロープロセスを適切に停止させてから、アップデート手順を実施することをお勧めします。

クラスタシステムの削除

Swarm クラスタのいずれかのマネージャーノード上(以下の例では ke2-server1)で、docker stack rm ke2 コマンドを実行してください。

[ke2-server1]$ docker stack rm ke2
Removing service ke2_jobmngrd
Removing service ke2_kengine
Removing service ke2_kompira
Removing service ke2_nginx
Removing service ke2_rabbitmq
Removing service ke2_redis
Removing config swarm_rabbitmq-config-cluster
Removing config swarm_kompira-config
Removing config swarm_rabbitmq-config-auth
Removing config swarm_kompira-audit
Removing config swarm_rabbitmq-config-ssl
Removing config swarm_bootstrap-rabbitmq
Removing config swarm_nginx-config
Removing network swarm_default

このコマンドを実行すると、クラスタで動作している全てのコンテナが停止して、クラスタスタックと構成サービスの定義などが削除されます。

この時点で、ノードの再起動や docker サービスの再起動を行なっても Kompira サービスは起動しない状態になっています。そのため以後の手順に進む前に、GlusterFS や Pgpool-II/PostgreSQL など Kompira 以外のミドルウェアのアップデートを実施することも可能です。ただし、その場合は、次の手順に進む前に、手を加えたシステム・ミドルウェアなどが再び正常に動作していることを確認するようにしてください。

ke2-docker パッケージの更新

システム構築に用いた ke2-docker パッケージが改版されている場合は、基本的には事前に更新しておいてください。

  • github からクローンしている場合は、git pull コマンドで更新してください。
  • ZIP ファイルから展開している場合は、改めてダウンロードしなおして展開してください。

システム構築時に docker-compose.yml ファイルや各種設定ファイルなどをカスタマイズしている場合は、更新後に改めてカスタマイズしなおしてください。

ke2-docker ディレクトリへの移動

システム構築に用いた docker-compose.yml ファイルを含むディレクトリに移動してください。

[ke2-server1]$ cd ke2/cluster/swarm

クラスタ構成の再セットアップ

ke2-docker パッケージにアップデート/変更点がなかった場合は、この手順はスキップすることができます。

注意: ke2-docker に変更があるリリース、特に configs/ 配下の設定ファイルや各サービス定義 (ke2/services/*.yml) が変わるリリースでは、この再セットアップ (setup_stack.sh の再実行による docker-swarm.yml の再生成) を必ず実施してください。以前生成した古い docker-swarm.yml のまま Swarm クラスタを開始すると、環境変数の不整合により、一部のコンテナが正しく起動しない、または変更した設定が反映されないことがあります。

ke2-docker にアップデートがある場合、セットアップ手順 を注意深く確認してください。

  • セットアップ手順の「Swarm クラスタの開始」の一つ手前の手順までを、必要に応じて実施してください。
  • すでに同じ内容で実施済みの手順についてはスキップすることができます。
    • 例えば「共有ディレクトリの作成」という手順の場合、作成すべきディレクトリ構成が同じであり、すでに作成済みであればスキップできます。
  • ただし「アップデート時の注意点」といった記述がある場合は、それに従ってください。

setup_stack.sh はその時点の環境変数から docker-swarm.yml を生成します。そのため、初回構築や前回までのアップデートで指定していた環境変数 (DATABASE_URL、資格情報・チューニング系など) を、今回も指定してください。 指定を省くと、再生成される docker-swarm.yml がそれらの既定値に戻り、接続先・資格情報・チューニング設定が意図せず変わることがあります。

※ docker-swarm.yml を生成しなおしていてカスタマイズが必要な場合は、この段階で改めてカスタマイズを適用してください。

Swarm クラスタの開始

以前生成した/または新たに生成した docker-swarm.yml ファイルを指定して、Swarm クラスタを開始してください。

[ke2-server1]$ docker stack deploy -c docker-swarm.yml ke2

問題なければ、アップデートした Kompira が起動しているはずです。