Nesta página, descrevemos como usar recursos do ProtectedApplication
para personalizar o comportamento de backups e restaurações no Google Distributed Cloud (GDC) isolado por air-gap.
As etapas descritas nesta página são opcionais e não são necessárias para configurar o backup e a restauração das suas cargas de trabalho. Os recursos ProtectedApplication
são recursos opcionais do Kubernetes em namespaces que personalizam o backup e a restauração de aplicativos individuais com estado. Sem os recursos do ProtectedApplication
, as seguintes restrições se aplicam:
- Você restringe a granularidade do escopo de backup e restauração ao nível do namespace.
- Nenhuma operação de limpeza e inatividade ocorre em cargas de trabalho durante a execução do backup.Isso pode resultar em máquinas virtuais com vários discos que não são consistentes com falhas após a restauração.
Os recursos ProtectedApplication
são recursos opcionais de namespace do Kubernetes
usados para personalizar o backup e a restauração de aplicativos individuais com estado.
O recurso ProtectedApplication
define quais recursos do Kubernetes pertencem a uma instância do aplicativo. É possível configurar manualmente uma orquestração especializada usando o comando kubectl
para criar um backup e uma restauração desses aplicativos nos seguintes cenários:
- Para identificar um conjunto de recursos em um namespace que possa ser armazenado em backup ou
restaurado independentemente dos outros recursos desse namespace. Um
ProtectedApplication
é a entidade de namespace mais refinada que você pode identificar para um escopo de backup ou restauração. - Para fornecer uma orquestração de backup especializada sempre que o
ProtectedApplication
estiver no escopo de um backup. Em particular, se oProtectedApplication
contiver recursosPersistentVolumeClaim
(PVC) diretamente ou por um modelo de umStatefulSet
, você poderá executar hooks antes e depois de fazer backup dos volumes. Hooks são comandos que são executados em contêineres de aplicativos. Esses hooks são frequentemente usados para operações de limpeza, desativação ou reativação e fornecem um backup consistente do aplicativo.
Antes de começar
Para usar recursos ProtectedApplication
, você precisa ter o seguinte:
- É necessário definir o recurso
ProtectedApplication
antes de criar um plano de backup. Para mais informações, consulte Planejar um conjunto de backups. O papel necessário de identidade e acesso:
- Para usuários administradores da plataforma (PA, na sigla em inglês):
- Administrador de backup de cluster de usuário: gerencia recursos de backup, como planos de backup e restauração em clusters de usuário. Peça ao administrador do IAM da organização para conceder a você o papel de administrador de backup de cluster de usuário (
user-cluster-backup-admin
).
- Administrador de backup de cluster de usuário: gerencia recursos de backup, como planos de backup e restauração em clusters de usuário. Peça ao administrador do IAM da organização para conceder a você o papel de administrador de backup de cluster de usuário (
- Para usuários do operador de aplicativos (AO, na sigla em inglês):
- Criador de backup: cria backups e restaurações manuais. Peça ao administrador do IAM do projeto para conceder a você o papel de criador de backup (
backup-creator
).
- Criador de backup: cria backups e restaurações manuais. Peça ao administrador do IAM do projeto para conceder a você o papel de criador de backup (
- Para mais informações, consulte Definições de papéis.
- Para usuários administradores da plataforma (PA, na sigla em inglês):
Implantar recursos de aplicativos protegidos
Confira um exemplo de especificação Deployment
com um recurso ProtectedApplication
que faz backup
de todos os recursos associados ao aplicativo durante o backup e restaura
todos os recursos durante a restauração:
apiVersion: v1
kind: Namespace
metadata:
name: "applications"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: protected-application-deployment
namespace: applications
labels:
app: protected
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: unprotected-application-deployment
namespace: applications
labels:
app: unprotected
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
---
apiVersion: gkebackup.gke.io/v1
kind: ProtectedApplication
metadata:
name: protected-application-test
namespace: applications
spec:
applicationName: protectedApplication
resourceSelection:
type: Selector
selector:
matchLabels:
app: protected
components:
- name: protect-application-deployment
resourceKind: Deployment
resourceNames:
- protected-application-deployment
strategy:
type: BackupAllRestoreAll
Especifique o ProtectedApplication
na lista de
selectedApplications
no backupScope
. Exemplo:
apiVersion: backup.gdc.goog/v1
kind: BackupPlan
metadata:
name: protected-application-backupplan-test
namespace: applications
spec:
clusterName: "cluster-sample"
backupSchedule:
cronSchedule: "*/30 * * * *"
paused: true
backupConfig:
backupScope:
selectedApplications:
namespacedNames:
- name: protected-application-test
namespace: applications
backupRepository: "backup-repository"
retentionPolicy:
backupDeleteLockDays: 10
backupRetainDays: 10
Este exemplo inclui os seguintes valores:
Valor | Descrição |
---|---|
resourceSelection |
Define como identificar recursos que pertencem ao aplicativo
protegido:
|
components |
A lista de componentes do aplicativo protegido, como implantações ou conjuntos com estado:
|
A seguir
- Para selecionar uma estratégia de aplicativo protegido, consulte Estratégias de aplicativo protegido.