在 Kubernetes 叢集中,我在名為「default」的同一個命名空間中部署了多個應用程式。一個應用程式由一個網頁伺服器 Pod 和一個資料庫 Pod 組成。
如何從備份計劃還原原始叢集中的單一應用程式GKE 備份?
在叢集中,我ProtectedApplication
為備份代理定義了幾個,以便它識別不同的應用程式(網站)。這個定義看起來像:
kind: ProtectedApplication
apiVersion: gkebackup.gke.io/v1alpha2
metadata:
name: test
namespace: default
spec:
resourceSelection:
type: Selector
selector:
matchLabels:
app.kubernetes.io/instance: test
components:
- name: wordpress
resourceKind: Deployment
resourceNames: ["test-wordpress"]
strategy:
type: BackupAllRestoreAll
backupAllRestoreAll: {}
- name: mariadb
resourceKind: StatefulSet
resourceNames: ["test-mariadb"]
strategy:
type: BackupAllRestoreAll
backupAllRestoreAll: {}
我主要關心的是恢復計劃配置中的「定義衝突處理」選項:
它說:
在執行非破壞性復原之前,目標叢集中任何衝突的命名空間(及其包含的所有資源)都將被刪除。
在僅恢復受保護的應用程式之前,它真的會刪除整個「預設」Kubernetes 命名空間嗎?我希望它只刪除 Kubernetes 命名空間內與要還原的備份內同名的資源。有人可以幫我嗎?
答案1
好消息!復原過程不會刪除整個命名空間。但只有屬於 ProtectedApplication 的工件會先被刪除,然後再從備份中還原。完美的!