Esta página descreve como criar um repositório de cópias de segurança para máquinas virtuais (VMs) no Google Distributed Cloud (GDC) air-gapped.
Antes de criar cópias de segurança ou instantâneos, tem de definir, pelo menos, um repositório de cópias de segurança que possa ser partilhado entre várias cópias de segurança ou instantâneos. Um repositório de cópias de segurança indica ao sistema de cópias de segurança onde armazenar ou obter cópias de segurança. Os repositórios de cópias de segurança para VMs estão restritos ao servidor da API Management.
Antes de começar
Antes de criar um repositório de cópia de segurança, tem de aprovisionar o armazenamento subjacente e configurar as autorizações necessárias, incluindo:
- Um contentor de armazenamento de objetos e um ponto final compatível com o S3.
- Uma conta de serviço com acesso concedido ao contentor e respetivas credenciais do S3.
As funções de IAM necessárias:
- Administrador de cópias de segurança da organização: gere recursos de cópia de segurança, como planos de cópia de segurança e restauro em clusters de utilizadores.
- Visualizador de segredos: vê segredos do Kubernetes em projetos.
Peça ao administrador de IAM da organização para lhe conceder as funções de administrador de cópias de segurança da organização (
organization-backup-admin) e visualizador de segredos (secret-viewer). Para mais informações, consulte o artigo Definições de funções.
Crie um repositório de cópia de segurança
Crie um repositório através da consola GDC ou da API.
Consola
- Inicie sessão na consola do GDC.
- No menu de navegação, clique em Cópia de segurança para máquinas virtuais > Repositórios.
- Clique em Criar repositório.
- Introduza um nome do repositório e uma descrição opcional.
No campo Ponto final do URI do S3, introduza um ponto final 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 obter 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 contentor, introduza o nome do domínio totalmente qualificado do contentor. Pode obter este nome na página Detalhes do contentor na consola do GDC ou, para obter o valor do recurso personalizado
Bucket, execute o seguinte comando:kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.fullyQualifiedName'No campo Região do contentor, introduza a região onde o contentor foi criado e obtenha o valor do recurso personalizado do contentor 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, introduza o ID da chave de acesso e a chave de acesso secreta. Para mais informações sobre como obter estas credenciais, consulte o artigo Conceda e obtenha acesso ao contentor de armazenamento.
Clique em Criar.
API
Crie um recurso personalizado BackupRepository com as suas credenciais do S3.
Obtenha o nome do segredo 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'Certifique-se de que regista o nome secreto devolvido pelo comando e o usa como
SECRET_NAMEno passo seguinte.Substitua o seguinte:
PROJECT_NAME: o nome do seu projeto.SA_NAME: o nome da conta de serviço usada para aceder ao armazenamento de objetos.
Para obter detalhes do contentor, como o FQDN e os pontos finais, extraia os valores
fullyQualifiedNameezonalEndpointsdo resultado:kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yamlCrie um
BackupRepositoryno servidor da API de gestão: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 o seguinte:
REPOSITORY_NAME: o nome do repositório de cópias de segurança.PROJECT_NAME: o nome do seu projeto.SA_NAME: o nome da conta de serviço usada para aceder ao armazenamento de objetos.SECRET_NAME: o nome do segredo devolvido pelo comandokubectl get secrets.ENDPOINT: o nome do domínio totalmente qualificado para o sistema de armazenamento, por exemplo,https://objectstorage.google.gdch.test. Para o campotype, apenas é suportado um valor deS3.BUCKET_FQDN: o nome totalmente qualificado do contentor.REGION: a região onde o contentor foi criado.FORCE_PATH_STYLE: use o campoforcePathStylepara forçar URLs de estilo de caminho para objetos. Este campo tem de ter um valor detrueoufalse.IMPORT_POLICY: definido como um dos seguintes valores:ReadWrite: Este repositório pode ser usado para agendar ou criar cópias de segurança, planos de cópias de segurança e restauros.ReadOnly: este repositório só pode ser usado para importar e ver cópias de segurança. Não é possível criar novas cópias de segurança nem recursos neste repositório, mas os restauros podem usar e fazer referência a cópias de segurança só de leitura para restauro. Não existe restrição quanto à frequência com que um repositório de cópias de segurança pode ser usado como ReadOnly.
O comando
BackupRepositorycria um recursoBackupRepositorycom leitura/escrita ativada no servidor da API Management com o mesmo nome.