在具有多个应用的​​命名空间中的 GKE Kubernetes 集群中恢复一个受保护的应用程序

在具有多个应用的​​命名空间中的 GKE Kubernetes 集群中恢复一个受保护的应用程序

在 Kubernetes 集群中,我在名为“default”的同一命名空间中部署了多个应用程序。一个应用程序由一个 Web 服务器 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 的工件,然后从备份中恢复。完美!

相关内容