Crie um repositório de cópia de segurança

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:

Crie um repositório de cópia de segurança

Crie um repositório através da consola GDC ou da API.

Consola

  1. Inicie sessão na consola do GDC.
  2. No menu de navegação, clique em Cópia de segurança para máquinas virtuais > Repositórios.
  3. Clique em Criar repositório.
  4. Introduza um nome do repositório e uma descrição opcional.
  5. 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 personalizado Bucket, execute o seguinte comando:

    kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.endpoint'
    
  6. 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'
    
  7. 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'
    
  8. 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.

  9. Clique em Criar.

API

Crie um recurso personalizado BackupRepository com as suas credenciais do S3.

  1. 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_NAME no 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.
  2. Para obter detalhes do contentor, como o FQDN e os pontos finais, extraia os valores fullyQualifiedName e zonalEndpoints do resultado:

    kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yaml
    
  3. Crie um BackupRepository no 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_POLICY
    

    Substitua 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 comando kubectl get secrets.
    • ENDPOINT: o nome do domínio totalmente qualificado para o sistema de armazenamento, por exemplo, https://objectstorage.google.gdch.test. Para o campo type, apenas é suportado um valor de S3.
    • BUCKET_FQDN: o nome totalmente qualificado do contentor.
    • REGION: a região onde o contentor foi criado.
    • FORCE_PATH_STYLE: use o campo forcePathStyle para forçar URLs de estilo de caminho para objetos. Este campo tem de ter um valor de true ou false.
    • 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 BackupRepository cria um recurso BackupRepository com leitura/escrita ativada no servidor da API Management com o mesmo nome.

O que se segue?