Como programar backups no Cloud Storage

Nesta página, descrevemos como programar backups do Cassandra no Cloud Storage. Nesse método, os backups são armazenados no bucket especificado do Cloud Storage.

Para programar backups do Cassandra, execute as seguintes etapas:

  1. Execute o comando create-service-account a seguir para criar uma conta de serviço (SA, na sigla em inglês) do Google Cloud com o papel padrão roles/storage.objectAdmin. Esse papel da SA permite gravar dados de backup no Cloud Storage. Execute o seguinte comando no diretório hybrid-base-directory/hybrid-files:
    ./tools/create-service-account --env non-prod --dir ./service-accounts
    Esse comando cria uma única conta de serviço chamada apigee-non-prod para uso em ambientes de não produção e coloca o arquivo de chave baixado no diretório ./service-accounts. Para mais informações sobre as contas de serviço do Google Cloud, consulte Como criar e gerenciar contas de serviço.
  2. O comando create-service-account salva um arquivo JSON que contém a chave privada da conta de serviço. O arquivo é salvo no mesmo diretório em que o comando é executado. Você precisará do caminho desse arquivo nas etapas a seguir.
  3. Crie um bucket do Cloud Storage. Especifique uma política de retenção de dados razoável para o bucket. A Apigee recomenda uma política de retenção de dados de 15 dias.
  4. Abra o arquivo overrides.yaml.
  5. Adicione as seguintes propriedades cassandra.backup para ativar o backup. Não remova nenhuma das propriedades já configuradas.

    Parâmetros

    cassandra:
      ...
    
      backup:
        enabled: true
        serviceAccountPath: SA_JSON_FILE_PATH
        dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH
        schedule: BACKUP_SCHEDULE_CODE
        cloudProvider: "GCP"  # For remote server backup set this to HYBRID (all caps)
    
      ...
      

    Exemplo

    ...
    
    cassandra:
      storage:
        type: gcepd
        capacity: 50Gi
        gcepd:
          replicationType: regional-pd
      auth:
        default:
          password: "abc123"
        admin:
          password: "abc234"
        ddl:
          password: "abc345"
        dml:
          password: "abc456"
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-data
      backup:
        enabled: true
        serviceAccountPath: "/Users/myhome/.ssh/my-cassandra-backup-sa.json"
        dbStorageBucket: "gs://myname-cassandra-backup"
        schedule: "45 23 * * 6"
        cloudProvider: "GCP"
        
    
    
      ... 
  6. Em que:
    Propriedade Descrição
    backup:enabled O backup está desativado por padrão. É preciso definir essa propriedade como true.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    O caminho no seu sistema de arquivos para o arquivo JSON da conta de serviço que foi salvo quando você executou o comando ./tools/create-service-account.

    Você também pode fornecer um caminho de arquivo relativo. O caminho é relativo ao diretório hybrid-base-directory/hybrid-files.

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    O caminho do bucket do Cloud Storage neste formato: gs://BUCKET_NAME. O gs:// é obrigatório.

    backup:cloudProvider

    GCP/HYBRID

    Para um backup do Cloud Storage, defina a propriedade como GCP. Por exemplo, cloudProvider: "GCP".

    Para um backup remoto do servidor, defina a propriedade como HYBRID. Por exemplo, cloudProvider: "HYBRID".

    backup:schedule

    BACKUP_SCHEDULE_CODE

    O horário de início do backup, especificado na sintaxe padrão de crontab. Padrão: 0 2 * * *

  7. Aplique as alterações de configuração ao novo cluster. Por exemplo:
    $APIGEECTL_HOME/apigeectl apply --datastore -f YOUR_OVERRIDES_FILE

    Em que YOUR_OVERRIDES_FILE é o caminho para o arquivo de substituição que você acabou de editar.

  8. Verifique o job de backup. Por exemplo:
    kubectl get cronjob -n apigee
    NAME                      SCHEDULE     SUSPEND   ACTIVE   LAST SCHEDULE   AGE
    apigee-cassandra-backup   33 * * * *   False     0        <none>          94s