リストア
続行する前に、ここに示すように、バックアップ・コンポーネントの前提条件が満たされていることを確認してください。また、このドキュメントでは、こちらで説明しているように、以前にVeleroまたはrancher-backupを使用してバックアップが正常に作成されていることを前提としています。
コンポーネント固有の次の手順を使用してアプリケーション・データを復元します:
Rancherリストア
Rancherリストアを開始するには、次のサンプル・カスタム・リソースYAMLファイルを作成します。Restore
カスタム・リソースが作成されると、オペレータが、指定されたバックアップ*.tar.gz
ファイルにアクセスし、そのファイルからアプリケーション・データをリストアします。
apiVersion: resources.cattle.io/v1
kind: Restore
metadata:
name: s3-restore
spec:
backupFilename: rancher-backup-test-1111111-2222-3333-2022-07-26T02-44-21Z.tar.gz
storageLocation:
s3:
credentialSecretName: rancher-backup-creds
credentialSecretNamespace: verrazzano-backup
bucketName: myvz-bucket
folder: rancher-backup
region: us-phoenix-1
endpoint: mytenancy.compat.objectstorage.us-phoenix-1.oraclecloud.com
rancher-backupオペレータは、リストア操作中にRancherデプロイメントをスケール・ダウンし、リストア完了後にスケール・アップします。
リソースは次の順序でリストアされます:
- カスタム・リソース定義(CRD)
- クラスタスコープのリソース
- ネームスペース・リソース
OpenSearchリストア
OpenSearchの場合は、Verrazzanoによってカスタム・フックが用意されており、それをVeleroで使用してリストア操作を実行できます。OpenSearchによって処理される一時データの性質のため、フックがOpenSearchスナップショットAPIを起動して、データ・ストリームを適切にバックアップおよびリストアします。したがって、データの損失がなくなり、データ破損も回避されます。
OpenSearchリストアを開始するには、最初に、システムで実行されている既存のOpenSearchクラスタおよびすべての関連データを削除します。
Verrazzanoモニタリング・オペレータ
をスケール・ダウンします。
$ kubectl scale deploy -n verrazzano-system verrazzano-monitoring-operator --replicas=0
- 次に、OpenSearchコンポーネントをクリーン・アップします。
# These are sample commands to demonstrate the OpenSearch restore process
$ kubectl delete sts -n verrazzano-system -l verrazzano-component=opensearch
$ kubectl delete deploy -n verrazzano-system -l verrazzano-component=opensearch
$ kubectl delete pvc -n verrazzano-system -l verrazzano-component=opensearch
OpenSearchリストアを実行するために、次のVelero Restore
APIオブジェクトの例を呼び出すことができます。
apiVersion: velero.io/v1
kind: Restore
metadata:
name: verrazzano-opensearch-restore
namespace: verrazzano-backup
spec:
backupName: verrazzano-opensearch-backup
includedNamespaces:
- verrazzano-system
labelSelector:
matchLabels:
verrazzano-component: opensearch
restorePVs: false
hooks:
resources:
- name: opensearch-test
includedNamespaces:
- verrazzano-system
labelSelector:
matchLabels:
statefulset.kubernetes.io/pod-name: vmi-system-es-master-0
postHooks:
- exec:
container: es-master
command:
- /usr/share/opensearch/bin/verrazzano-backup-hook
- -operation
- restore
- -velero-backup-name
- verrazzano-opensearch-backup
waitTimeout: 30m
execTimeout: 30m
onError: Fail
前述の例では、既存のバックアップからOpenSearchクラスタをリストアします。
- 新しいOpenSearchクラスタを(新しい索引を付けて)再作成します。
postHook
は、スナップショット・データをリストアするOpenSearch APIを呼び出します。- フックを実行する必要があるコンテナは、ポッド・ラベル・セレクタの後にコンテナ名を指定することで識別されます。このケースでは、
statefulset.kubernetes.io/pod-name: vmi-system-es-master-0
です。
ノート: フックは、Kubernetesオブジェクトのリストア後に適用する必要があるため、postHook
である必要があります。
リストア操作が処理された後で、velero restore logs
コマンドを使用してフック・ログを確認できます。また、フック・ログはポッドの/tmp
フォルダに格納されます。
OpenSearchリストア・ログ
# To display the logs from the restore, run the following command
$ kubectl logs -n verrazzano-backup -l app.kubernetes.io/name=velero
# Fetch the log file name as shown
$ kubectl exec -it vmi-system-es-master-0 -n verrazzano-system -- ls -al /tmp | grep verrazzano-restore-hook | tail -n 1 | awk '{print $NF}'
# To examine the hook logs, exec into the pod as shown, and use the file name retrieved previously
$ kubectl exec -it vmi-system-es-master-0 -n verrazzano-system -- cat /tmp/<log-file-name>