在具有多個應用程式的命名空間中還原 GKE Kubernetes 叢集中的一個受保護應用程式

在具有多個應用程式的命名空間中還原 GKE Kubernetes 叢集中的一個受保護應用程式

在 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 的工件會先被刪除,然後再從備份中還原。完美的!

相關內容