Nesta página, descrevemos como criar um repositório de backup para máquinas virtuais (VMs) no Google Distributed Cloud (GDC) com isolamento físico.
Antes de criar backups ou snapshots, defina pelo menos um repositório de backup que possa ser compartilhado entre vários backups ou snapshots. Um repositório de backup informa ao sistema onde armazenar ou recuperar backups. Os repositórios de backup para VMs são restritos ao servidor da API Management.
Antes de começar
Antes de criar um repositório de backup, provisione o armazenamento subjacente e configure as permissões necessárias, incluindo:
- Um bucket de armazenamento de objetos e um endpoint compatível com S3.
- Uma conta de serviço com acesso concedido ao bucket e as credenciais do S3.
Os papéis do IAM necessários:
- Administrador de backup da organização: gerencia recursos de backup, como planos de backup e restauração em clusters de usuário.
- Leitor de secrets: visualiza secrets do Kubernetes em projetos.
Peça ao administrador do IAM da organização para conceder a você os papéis de administrador de backup da organização (
organization-backup-admin) e leitor de secrets (secret-viewer). Para mais informações, consulte Definições de papéis.
Criar um repositório de backup
Crie um repositório usando o console do GDC ou a API.
Console
- Faça login no console do GDC.
- No menu de navegação, clique em Backup para máquinas virtuais > Repositórios.
- Clique em Criar repositório.
- Insira um nome e uma descrição opcional para o repositório.
No campo Endpoint do URI do S3, insira um endpoint com o nome de domínio totalmente qualificado do seu site de armazenamento de objetos, como
https://objectstorage.ORG.ZONE.DOMAIN.SUFFIX:PORT. Por exemplo,https://objectstorage.org-1.zone1.google.gdch.test. Para receber o valor do recurso personalizadoBucket, execute o seguinte comando:kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.endpoint'No campo Nome do bucket, insira o nome de domínio totalmente qualificado do bucket. É possível encontrar esse nome na página Detalhes do bucket no console do GDC ou executar o seguinte comando para receber o valor do recurso personalizado
Bucket:kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.fullyQualifiedName'No campo Região do bucket, insira a região em que o bucket foi criado e extraia o valor do recurso personalizado do bucket executando o seguinte comando:
kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.region'Nos campos ID da chave de acesso e Chave de acesso, insira o ID da chave de acesso e a chave de acesso secreta. Para mais informações sobre como receber essas credenciais, consulte Conceder e receber acesso ao bucket de armazenamento.
Clique em Criar.
API
Crie um recurso personalizado BackupRepository usando suas credenciais do S3.
Confira o nome do secret que contém as credenciais do S3:
export PROJECT_NAME=PROJECT_NAME export SA_NAME=SA_NAME kubectl get secrets --namespace $PROJECT_NAME -o json | jq -r --arg USER_NAME "${SA_NAME:?}" '.items[] | select( (.metadata.annotations."object.gdc.goog/subject"==$USER_NAME)) | .metadata.name'Registre o nome do secret retornado pelo comando e use-o como
SECRET_NAMEna próxima etapa.Substitua:
PROJECT_NAME: o nome do projeto.SA_NAME: o nome da conta de serviço usada para acessar o armazenamento de objetos.
Para receber detalhes do bucket, como FQDN e endpoints, extraia os valores
fullyQualifiedNameezonalEndpointsda saída:kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yamlCrie um
BackupRepositoryno servidor da API Management:apiVersion: backup.gdc.goog/v1 kind: BackupRepository metadata: name: REPOSITORY_NAME spec: secretReference: namespace: PROJECT_NAME name: SECRET_NAME endpoint: ENDPOINT type: "S3" s3Options: bucket: BUCKET_FQDN region: REGION forcePathStyle: FORCE_PATH_STYLE importPolicy: IMPORT_POLICYSubstitua:
REPOSITORY_NAME: o nome do repositório de backup.PROJECT_NAME: o nome do projeto.SA_NAME: o nome da conta de serviço usada para acessar o armazenamento de objetos.SECRET_NAME: o nome do secret retornado do comandokubectl get secrets.ENDPOINT: o nome de domínio totalmente qualificado do sistema de armazenamento, por exemplo,https://objectstorage.google.gdch.test. Para o campotype, apenas o valorS3é aceito.BUCKET_FQDN: o nome totalmente qualificado do bucket.REGION: a região em que o bucket foi criado.FORCE_PATH_STYLE: use o campoforcePathStylepara forçar URLs de estilo de caminho para objetos. Esse campo precisa ter um valor detrueoufalse.IMPORT_POLICY: defina como uma das seguintes opções:ReadWrite: esse repositório pode ser usado para programar ou criar backups, planos de backup e restaurações.ReadOnly: esse repositório só pode ser usado para importar e visualizar backups. Não é possível criar novos backups ou recursos nesse repositório, mas as restaurações podem usar e referenciar backups somente leitura. Não há restrição quanto à frequência com que um repositório de backup pode ser usado como ReadOnly.
O
BackupRepositorycria um recursoBackupRepositoryativado para leitura e gravação no servidor da API Management com o mesmo nome.