あるクラスターから別のクラスターにアプリを移行する
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 に関連付けられていることがわかります。アプリの状態はバックアップを取ったときと同じです。

