Skip to content

[Qmonus SDK] ロールバック手順

概要

Qmonus SDKアプリケーションのパイプラインマイグレーション手順のうち、手順7のState移行におけるロールバック手順について解説します。

手順7では、Qmonus SDK leader podとguest podをそれぞれ削除する工程の前にapprove処理があり、2回目のguest podを削除するapprove前であれば、v3マイグレーション実行前の状態に戻し、v2の利用を継続できます。

1. ロールバック用Manifestのダウンロード

以下の手順にしたがって、State移行用のAssemblyLineからロールバック用のManifestをダウンロードします。

  1. 左メニューより、AssemblyLineを選択します。
  2. 一覧からマイグレーションツールが生成したState移行用AssemblyLineを選択します。
    • migrate-${app_name}-${deployment_name} という命名規則ですので、移行対象の環境のものを選択してください。
  3. 上記で選択したAssemblyLine名が画面中央に表示されるので、その名前を再度選択して詳細画面に遷移します。
  4. HISTORYタブを選択し、ロールバックしたいAssemblyLineのDETAILボタンを押下します。
  5. 詳細画面中のログ表示パネルの右上に表示される ARTIFACTS ボタンを押下し、Manifestをダウンロードします。
  6. ダウンロードしたtgzファイルを解凍します。

2. Manifestの適用

以下のコマンドを実行し、解凍したファイルを利用し、v3 migration実行前のManifestを適用します。ご利用のKubernetesクラスタにアクセスできる環境でかつクラスタへの認証が完了してから実施ください。

bash
kubectl apply -f removed/internal-services.yaml
kubectl delete -f new/manifests.yml

3. Podの再作成

以下のコマンドを実行し、v3 migration中に削除したQmonus SDK leader podとguest podを再作成してください。 ここで指定する値は以下の通りです。

  • namespace: アプリケーションが稼働するKubernetes Namespace
  • version: マイグレーション対象のアプリケーションのCommit ID

ここで、lambda、schedule、collector、reflectorといった他のコンポーネントも利用している場合は、以下のコマンドの末尾に利用コンポーネントを追加して実行してください。

bash
kubectl -n ${namespace} scale deployment --replicas=1 apigw-${version} frontal-${version} scenario-${version} transaction-${version}
kubectl -n ${namespace} scale deployment --replicas=2 apigw-${version}-guest scenario-${version}-guest transaction-${version}-guest

4. 状態確認

以下のコマンドを実行し、Leader Podが1台、Guest Podがそれぞれ2台Readyになり、DeploymentリソースとしてReadyになっていることを確認します。

bash
kubectl -n ${namespace} get deployment

5. その後の対応

ロールバック後の状態を確認させていただきますので、Qmonusサポートサイトからチケット起票ください。