從備份還原應用程式
本節介紹如何從備份還原應用程式。
先決條件
為了從備份中恢復,我們假設應用程式所在的命名空間被意外刪除了。
還原到同一命名空間
要從我們剛剛建立的備份中恢復,我們需要建立一個恢復自訂資源 (CR)。我們需要為其提供一個名稱,提供我們想要從中還原的備份的名稱,並將 restorePVs 設為 true。可以設定其他參數,如下所示"文件"。點選建立按鈕。
apiVersion: velero.io/v1 kind: Restore apiVersion: velero.io/v1 metadata: name: restore namespace: openshift-adp spec: backupName: backup-postgresql-ontaps3 restorePVs: true
當階段顯示完成時,您可以看到應用程式已恢復到拍攝快照時的狀態。應用程式恢復到相同的命名空間。
還原到不同的命名空間
若要將應用程式還原到不同的命名空間,您可以在 Restore CR 的 yaml 定義中提供 namespaceMapping。
以下範例 yaml 檔案建立一個 Restore CR,以將應用程式及其持久性儲存從 postgresql 命名空間還原到新的命名空間 postgresql-restored。
apiVersion: velero.io/v1 kind: Restore metadata: name: restore-to-different-ns namespace: openshift-adp spec: backupName: backup-postgresql-ontaps3 restorePVs: true includedNamespaces: - postgresql namespaceMapping: postgresql: postgresql-restored
當階段顯示完成時,您可以看到應用程式已恢復到拍攝快照時的狀態。應用程式將恢復到 yaml 中指定的不同命名空間。
還原到不同的儲存類別
Velero 提供了透過指定 json 補丁來修改復原期間資源的通用功能。在恢復資源之前,json 補丁會套用到資源上。 json 補丁在 configmap 中指定,並在 restore 命令中引用該 configmap。此功能使您能夠使用不同的儲存類別進行復原。
在下面的範例中,應用程式在部署期間使用 ontap-nas 作為其持久卷的儲存類別。創建了名為backup-postgresql-ontaps3的應用程式備份。
透過卸載應用程式來模擬應用程式的遺失。
要使用不同的儲存類別(例如 ontap-nas-eco 儲存類別)還原虛擬機,您需要執行以下兩個步驟:
步驟 1
在 openshift-adp 命名空間中建立一個配置映射(控制台),如下所示: 填寫螢幕截圖中顯示的詳細資訊: 選擇命名空間:openshift-adp 名稱:change-ontap-sc(可以是任意名稱) 鍵:change-ontap-sc-config.yaml: 值:
version: v1 resourceModifierRules: - conditions: groupResource: persistentvolumeclaims resourceNameRegex: "data-postgresql*" namespaces: - postgresql patches: - operation: replace path: "/spec/storageClassName" value: "ontap-nas-eco"
產生的配置映射物件應如下所示(CLI):
此配置圖將在建立復原時套用資源修改規則。將應用程式補丁將以 rhel 開頭的所有持久化卷聲明的儲存類別名稱替換為 ontap-nas-eco。
步驟 2
若要復原虛擬機,請使用 Velero CLI 中的下列命令:
#velero restore create restore1 --from-backup backup1 --resource-modifier-configmap change-storage-class-config -n openshift-adp
該應用程式在使用儲存類別 ontap-nas-eco 創建的持久卷聲明的相同命名空間中恢復。