Nesta página, descrevemos como usar recursos do ProtectedApplication para personalizar o comportamento de backups e restaurações no Google Distributed Cloud (GDC) com isolamento físico.
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 pode ser armazenado em backup ou
restaurado independentemente dos outros recursos nesse 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
ProtectedApplicationestiver no escopo de um backup. Em particular, se oProtectedApplicationcontiver 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
ProtectedApplicationantes de criar um plano de backup. Para mais informações, consulte Planejar um conjunto de backups. O papel de identidade e acesso necessário:
- 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):
- Backup Creator: 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).
- Backup Creator: 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: USER_CLUSTER_NS
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: protected-application-deployment
namespace: USER_CLUSTER_NS
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: USER_CLUSTER_NS
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_APP_NAME
namespace: USER_CLUSTER_NS
spec:
resourceSelection:
type: Selector
selector:
matchLabels:
app: protected
components:
- name: application-deployment
resourceKind: Deployment
resourceNames:
- protected-application-deployment
strategy:
type: BackupAllRestoreAll
Substitua:
USER_CLUSTER_NS: o namespace no cluster de usuário em que o aplicativo protegido está localizado.PROTECTED_APP_NAME: o nome do seuProtectedApplication.
Este exemplo inclui os seguintes valores para ProtectedApplication:
| 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:
|
Especifique o ProtectedApplication na lista de selectedApplications no backupScope. Exemplo:
apiVersion: backup.gdc.goog/v1
kind: BackupPlan
metadata:
name: BACKUP_PLAN
namespace: USER_CLUSTER_NS
spec:
clusterName: USER_CLUSTER
backupSchedule:
cronSchedule: CRON_SCHEDULE
paused: BACKUP_SCHEDULE_STATUS
backupConfig:
backupScope:
selectedApplications:
namespacedNames:
- name: PROTECTED_APP_NAME
namespace: USER_CLUSTER_NS
backupRepository: BACKUP_REPOSITORY
retentionPolicy:
backupDeleteLockDays: BACKUP_DELETE_LOCK_DAYS
backupRetainDays: BACKUP_RETAIN_DAYS
Substitua:
BACKUP_PLAN: o nome do seu plano de backup.USER_CLUSTER: o nome do cluster de usuário.CRON_SCHEDULE: uma programação crontab indicando quando agendar backups, como"*/30 * * * *". O intervalo mínimo entre backups programados é de 10 minutos.BACKUP_SCHEDULE_STATUS: setrue, os backups periódicos não serão programados.PROTECTED_APP_NAME: o nome que você deu ao recursoProtectedApplication.BACKUP_REPOSITORY: o nome do repositório de backup que você está usando para armazenar backups.BACKUP_DELETE_LOCK_DAYS: impede a exclusão do backup pelo número de dias especificado após a criação dele, por exemplo,10 days.BACKUP_RETAIN_DAYS: define o número total de dias para manter o backup. Após esse período, o backup é excluído automaticamente. Definir um valor muito alto pode levar ao esgotamento do armazenamento, enquanto um valor muito baixo pode aumentar o risco de perda de dados. Se não for especificado, o valor padrão será 35. As políticas de retenção não substituem as políticas de retenção do local de armazenamento nem podem exceder 90 dias.
A seguir
- Para selecionar uma estratégia de aplicativo protegido, consulte Estratégias de aplicativo protegido.