15.3.3. Lifecycle Agent を使用したイメージベースアップグレードの Rollback ステージへの移行
再起動後、initMonitorTimeoutSeconds フィールドに指定された時間枠内にアップグレードが完了しない場合は、自動ロールバックが開始されます。
ImageBasedUpgrade CR の例
apiVersion: lca.openshift.io/v1
kind: ImageBasedUpgrade
metadata:
name: upgrade
spec:
stage: Idle
seedImageRef:
version: 4.15.2
image: <seed_container_image>
autoRollbackOnFailure: {}
# initMonitorTimeoutSeconds: 1800
# ...
- 1
- オプション: ロールバックする時間枠 (秒単位)。最初の再起動後、この時間枠内にアップグレードが完了しないと、ロールバックが実行されます。定義されていないか
0に設定されている場合は、デフォルト値の1800秒 (30 分) が使用されます。
アップグレード後に解決できない問題が発生した場合は、変更を手動でロールバックできます。
前提条件
-
cluster-admin権限を持つユーザーとしてハブクラスターにログインしている。 - 元の stateroot 上のコントロールプレーン証明書が有効であることを確認した。証明書の有効期限が切れている場合は、「コントロールプレーン証明書の期限切れの状態からのリカバリー」を参照してください。
たとえば、テスト目的で最近インストールしたシングルノードの OpenShift クラスターをアップグレードする場合、ロールバックできる期間は 24 時間以内という制限があります。ImageBasedUpgrade カスタムリソースの rollbackAvailabilityExpiration フィールドを確認することで、ロールバック時間を検証できます。
手順
Rollback ステージに移行するには、次のコマンドを実行して、
ImageBasedUpgradeCR のstageフィールドの値をRollbackにパッチします。$ oc patch imagebasedupgrades.lca.openshift.io upgrade -p='{"spec": {"stage": "Rollback"}}' --type=mergeLifecycle Agent は、以前にインストールされたバージョンの OpenShift Container Platform を使用してクラスターを再起動し、アプリケーションを復元します。
正常に変更されたら、次のコマンドを実行して、
ImageBasedUpgradeCR のstageフィールドの値をIdleにパッチして、ロールバックを終了します。$ oc patch imagebasedupgrades.lca.openshift.io upgrade -p='{"spec": {"stage": "Idle"}}' --type=merge -n openshift-lifecycle-agent警告ロールバック後に
Idleステージに移行すると、Lifecycle Agent は失敗したアップグレードのトラブルシューティングに使用できるリソースをクリーンアップします。