7 アップグレードのロールバック

アップグレードが失敗した場合は、失敗したアップグレードをロールバックし、問題を修正してから、アップグレードを再試行できます。アップグレードは成功したが、その後で機能上の問題が発生した場合も、ロールバックできます。

  1. 次のコマンドを使用して、OAAチャートの履歴を確認します:
     helm history oaainstall -n <namespace>
    たとえば:
     helm history oaainstall -n oaans
    出力は次のようになります:
    
    $ helm history oaainstall -n oaans
    REVISION        UPDATED      STATUS          CHART                           APP VERSION     DESCRIPTION
    1               <date>       superseded      oaa-1.0.0-12.2.1.4.1-20220127   0.1.0           Install complete
    2               <date>       superseded      oaa-1.0.0-latest                0.1.0           Upgrade complete
    
  2. 次のコマンドを使用して、OAAチャート・リリースを前のバージョンにロールバックします:
    helm rollback oaainstall -n <namespace>
    たとえば:
    helm rollback oaainstall -n oaans
  3. 「helm history」を使用して、ロールバックが発生したことを示すOAAチャートの履歴を確認します:
    $ helm history oaainstall -n oaans
    REVISION        UPDATED      STATUS          CHART                           APP VERSION     DESCRIPTION
    1               <date>       superseded      oaa-1.0.0-12.2.1.4.1-20220127   0.1.0           Install complete
    2               <date>       superseded      oaa-1.0.0-latest                0.1.0           Upgrade complete
    3               <date>       deployed        oaa-1.0.0-12.2.1.4.1-20220127   0.1.0           Rollback to 1
    
  4. ロールバックが成功し、すべてのポッドが実行されていることを確認します:
    kubectl get pods -n <namespace>
    たとえば:
    kubectl get pods -n oaans
  5. 次のコマンドを実行して、stsを削除します:
    kubectl delete sts -l coherenceCluster=<common.deployment.name> -n <common.kube.namespace>

    ノート:

    <common.deployment.name>および<common.kube.namespace>の値は、NFS_CONFIG_PATH/installOAA.properties内にあります。
  6. 次のコマンドを実行して、stsのステータスを確認します:
    kubectl get sts -n <common.kube.namespace>
    stsのステータスにReady(n/n)と表示されたら、次のステップに進むことができます:
    NAME                    READY   AGE
    oaainstall-cache-rest   1/1     5m
    oaainstall-storage      3/3     5m
    
  7. ./OAA.sh -f installOAA.propertiesを再実行します。
  8. helmテストが完了したら、次のコマンドを実行してポッドを再起動します:
    kubectl get deploy -n <common.kube.namespace> -l app.kubernetes.io/instance=<common.deployment.name> -o name | xargs -n 1 kubectl rollout restart -n <common.kube.namespace>
  9. 次のコマンドを実行して、すべてのポッドが実行されていることを確認します:
    kubectl get pods -n <namespace>
    たとえば:
    kubectl get pods -n oaans

    ノート:

    すべてのポッドでREADYステータスが1/1と表示されるまでに数分かかります。