在 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 的工件,然后从备份中恢复。完美!