В кластере Kubernetes у меня есть несколько приложений, развернутых в одном пространстве имен под названием "default". Приложение состоит из пода веб-сервера и пода базы данных.
Как восстановить одно приложение в исходном кластере из плана резервного копированияРезервное копирование для 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, а затем восстанавливаются из резервной копии. Идеально!