This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.18.7. アップグレード前のクラスターリソースのバックアップの作成
単一ノードの OpenShift の場合、Topology Aware Lifecycle Manager (TALM) は、アップグレード前にデプロイメントのバックアップを作成できます。アップグレードが失敗した場合は、以前のバージョンを回復し、アプリケーションの再プロビジョニングを必要とせずにクラスターを動作状態に復元できます。
コンテナーイメージのバックアップは、ClusterGroupUpgrade
CR で バックアップ
フィールドが true
に設定されている場合に開始されます。
バックアッププロセスは、次のステータスになる可能性があります。
BackupStatePreparingToStart
- 最初の調整パスが進行中です。TALM は、失敗したアップグレード試行で作成されたスポークバックアップネームスペースとハブビューリソースをすべて削除します。
BackupStateStarting
- バックアップの前提条件とバックアップジョブを作成しています。
BackupStateActive
- バックアップが進行中です。
BackupStateSucceeded
- バックアップは成功しました。
BackupStateTimeout
- アーティファクトのバックアップは部分的に行われました。
BackupStateError
- バックアップはゼロ以外の終了コードで終了しました。
バックアップが失敗し、BackupStateTimeout
または BackupStateError
状態になると、クラスターのアップグレードは続行されません。
18.7.1. バックアップを含む ClusterGroupUpgrade CR の作成 リンクのコピーリンクがクリップボードにコピーされました!
単一ノードの OpenShift の場合、アップグレード前にデプロイメントのバックアップを作成できます。アップグレードが失敗した場合は、Topology Aware Lifecycle Manager (TALM) によって生成された upgrade-recovery.sh
スクリプトを使用して、システムをアップグレード前の状態に戻すことができます。バックアップは次の項目で設定されます。
- クラスターのバックアップ
-
etcd
と静的 Pod マニフェストのスナップショット。 - コンテンツのバックアップ
-
/etc
、/usr/local
、/var/lib/kubelet
などのフォルダーのバックアップ。 - 変更されたファイルのバックアップ
-
変更された
machine-config
によって管理されるすべてのファイル。 - Deployment
-
固定された
ostree
デプロイメント。 - イメージ (オプション)
- 使用中のコンテナーイメージ。
前提条件
- Topology Aware Lifecycle Manager (TALM) をインストールします。
- 1 つ以上のマネージドクラスターをプロビジョニングします。
-
cluster-admin
権限を持つユーザーとしてログインしている。 - Red Hat Advanced Cluster Management 2.2.4 をインストールします。
リカバリーパーティションを作成することを強く推奨します。以下は、50 GB のリカバリーパーティションの SiteConfig
カスタムリソース (CR) の例です。
手順
clustergroupupgrades-group-du.yaml
ファイルで、backup
フィールドをtrue
に設定してClusterGroupUpgrade
CR の内容を保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新を開始するには、次のコマンドを実行して
ClusterGroupUpgrade
CR を適用します。oc apply -f clustergroupupgrades-group-du.yaml
$ oc apply -f clustergroupupgrades-group-du.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
以下のコマンドを実行して、ハブクラスターのアップグレードのステータスを確認します。
oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
$ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.7.2. アップグレードが失敗した後のクラスターのリカバリー リンクのコピーリンクがクリップボードにコピーされました!
クラスターのアップグレードが失敗した場合は、手動でクラスターにログインし、バックアップを使用してクラスターをアップグレード前の状態に戻すことができます。次の 2 つの段階があります。
- ロールバック
- 試行されたアップグレードにプラットフォーム OS 展開への変更が含まれていた場合は、回復スクリプトを実行する前に、以前のバージョンにロールバックする必要があります。
ロールバックは、TALM および単一ノード OpenShift からのアップグレードにのみ適用されます。このプロセスは、他のアップグレードタイプからのロールバックには適用されません。
- 復元
- リカバリーはコンテナーをシャットダウンし、バックアップパーティションのファイルを使用してコンテナーを再起動し、クラスターを復元します。
前提条件
- Topology Aware Lifecycle Manager (TALM) をインストールします。
- 1 つ以上のマネージドクラスターをプロビジョニングします。
- Red Hat Advanced Cluster Management 2.2.4 をインストールします。
-
cluster-admin
権限を持つユーザーとしてログインしている。 - バックアップ用に設定されたアップグレードを実行します。
手順
次のコマンドを実行して、以前に作成した
ClusterGroupUpgrade
カスタムリソース (CR) を削除します。oc delete cgu/du-upgrade-4918 -n ztp-group-du-sno
$ oc delete cgu/du-upgrade-4918 -n ztp-group-du-sno
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - リカバリーするクラスターにログインします。
次のコマンドを実行して、プラットフォーム OS の展開のステータスを確認します。
oc ostree admin status
$ oc ostree admin status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
ostree admin status
[root@lab-test-spoke2-node-0 core]# ostree admin status * rhcos c038a8f08458bbed83a77ece033ad3c55597e3f64edad66ea12fda18cbdceaf9.0 Version: 49.84.202202230006-0 Pinned: yes
1 origin refspec: c038a8f08458bbed83a77ece033ad3c55597e3f64edad66ea12fda18cbdceaf9
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 現在の展開は固定されています。プラットフォーム OS 展開のロールバックは必要ありません。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プラットフォーム OS 展開のロールバックをトリガーするには、次のコマンドを実行します。
rpm-ostree rollback -r
$ rpm-ostree rollback -r
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 復元の最初のフェーズでは、コンテナーをシャットダウンし、ファイルをバックアップパーティションから対象のディレクトリーに復元します。リカバリーを開始するには、次のコマンドを実行します。
/var/recovery/upgrade-recovery.sh
$ /var/recovery/upgrade-recovery.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロンプトが表示されたら、次のコマンドを実行してクラスターを再起動します。
systemctl reboot
$ systemctl reboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 再起動後、次のコマンドを実行してリカバリーを再開します。
/var/recovery/upgrade-recovery.sh --resume
$ /var/recovery/upgrade-recovery.sh --resume
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
リカバリーユーティリティーが失敗した場合は、--restart
オプションを使用して再試行できます。
/var/recovery/upgrade-recovery.sh --restart
$ /var/recovery/upgrade-recovery.sh --restart
検証
リカバリーのステータスを確認するには、次のコマンドを実行します。
oc get clusterversion,nodes,clusteroperator
$ oc get clusterversion,nodes,clusteroperator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow