あるクラスターから別のクラスターにアプリを移行する
Velero のバックアップおよび復元機能は、クラスター間でデータを移行するための貴重なツールになります。このセクションでは、あるクラスターのオブジェクト ストレージにアプリのバックアップを作成し、同じオブジェクト ストレージから別のクラスターにアプリを復元することで、あるクラスターから別のクラスターにアプリを移行する方法について説明します。 。
最初のクラスターからのバックアップ
クラスター 1 の前提条件
-
クラスターにTridentをインストールする必要があります。
-
トライデント バックエンドとストレージ クラスを作成する必要があります。
-
OADP オペレータをクラスターにインストールする必要があります。
-
DataProtectionApplication を構成する必要があります。
DataProtectionApplication オブジェクトを構成するには、次の仕様を使用します。
spec: backupLocations: - velero: config: insecureSkipTLSVerify: 'false' profile: default region: us-east-1 s3ForcePathStyle: 'true' s3Url: 'https://10.61.181.161' credential: key: cloud name: ontap-s3-credentials default: true objectStorage: bucket: velero caCert: <base-64 encoded tls certificate> prefix: container-backup provider: aws configuration: nodeAgent: enable: true uploaderType: kopia velero: defaultPlugins: - csi - openshift - aws - kubevirt
-
クラスター上にアプリケーションを作成し、このアプリケーションのバックアップを取得します。例として、postgres アプリケーションをインストールします。
-
バックアップ CR には次の仕様を使用します。
spec: csiSnapshotTimeout: 10m0s defaultVolumesToFsBackup: false includedNamespaces: - postgresql itemOperationTimeout: 4h0m0s snapshotMoveData: true storageLocation: velero-sample-1 ttl: 720h0m0s
すべてのインスタンス タブをクリックすると、さまざまなオブジェクトが作成され、さまざまなフェーズを経て最終的にバックアップが 完了 フェーズに到達する様子を確認できます。
名前空間 postgresql 内のリソースのバックアップは、OADP 仕様の backupLocation で指定されたオブジェクト ストレージの場所 (ONTAP S3) に保存されます。
2番目のクラスターに復元する
クラスター 2 の前提条件
-
Trident はクラスター 2 にインストールする必要があります。
-
postgresql アプリは postgresql 名前空間にまだインストールされていない必要があります。
-
OADP オペレータはクラスター 2 にインストールする必要があり、BackupStorage Location は最初のクラスターからバックアップが保存されたのと同じオブジェクト ストレージの場所を指している必要があります。
-
バックアップ CR は 2 番目のクラスターから見える必要があります。
このクラスター上のアプリをバックアップから復元します。次の yaml を使用して復元 CR を作成します。
apiVersion: velero.io/v1 kind: Restore apiVersion: velero.io/v1 metadata: name: restore namespace: openshift-adp spec: backupName: backup restorePVs: true
復元が完了すると、postgresql アプリがこのクラスター上で実行されており、pvc および対応する pv に関連付けられていることがわかります。アプリの状態はバックアップを取ったときと同じです。