Agendar cópias de segurança no Cloud Storage

Esta página descreve como agendar cópias de segurança para o Cassandra no Cloud Storage. Neste método, as cópias de segurança são armazenadas no contentor do Cloud Storage especificado.

Para agendar cópias de segurança do Cassandra, siga estes passos:

  1. Execute o seguinte comando create-service-account para criar uma conta de serviço (CS) do Google Cloud com a função roles/storage.objectAdmin padrão. Esta função de SA permite-lhe escrever dados de cópias de segurança no Cloud Storage. Execute o comando no diretório $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/.
    ./tools/create-service-account --env non-prod --dir ./

    Este comando cria uma única conta de serviço com o nome apigee-non-prod para utilização em ambientes de não produção e coloca o ficheiro de chave transferido no diretório ./.

    Para mais informações sobre as contas de serviço do Google Cloud, consulte o artigo Criar e gerir contas de serviço.

  2. O comando create-service-account guarda um ficheiro JSON que contém a chave privada da conta de serviço. O ficheiro é guardado no mesmo diretório onde o comando é executado. Vai precisar do caminho para este ficheiro nos passos seguintes.
  3. Crie um contentor do Cloud Storage. Especifique uma política de retenção de dados razoável para o contentor. A Apigee recomenda uma política de retenção de dados de 15 dias.
  4. Abra o ficheiro overrides.yaml.
  5. Adicione as seguintes propriedades cassandra.backup para ativar a cópia de segurança. Não remova nenhuma das propriedades já configuradas.

    Parâmetros

    cassandra:
        ...
    
        backup:
          enabled: true
          serviceAccountPath: SA_JSON_FILE_PATH
          dbStorageBucket: CLOUD_STORAGE_BUCKET_NAME
          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: "my-cassandra-backup-sa.json"
          dbStorageBucket: "myname-cassandra-backup"
          schedule: "45 23 * * 6"
          cloudProvider: "GCP"
          
    
    
        ... 
  6. Onde:
    Propriedade Descrição
    backup:enabled A cópia de segurança está desativada por predefinição. Tem de definir esta propriedade como true.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    O caminho no seu sistema de ficheiros para o ficheiro JSON da conta de serviço que foi transferido quando executou o comando create-service-account.

    O caminho tem de ser relativo ao diretório do gráfico apigee-datastore. Por exemplo, serviceAccountPath: myproject-apigee-cassandra.json.

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_NAME

    O nome de um contentor do Google Cloud Storage existente que vai ser usado para armazenar arquivos de cópias de segurança. Consulte o artigo Criar contentores se precisar de criar um.

    backup:cloudProvider

    GCP/HYBRID

    Para uma cópia de segurança do Cloud Storage, defina a propriedade como GCP. Por exemplo, cloudProvider: "GCP".

    Para uma cópia de segurança do servidor remoto, defina a propriedade como HYBRID. Por exemplo, cloudProvider: "HYBRID".

    backup:schedule

    BACKUP_SCHEDULE_CODE

    A hora em que a cópia de segurança começa, especificada na sintaxe crontab padrão. Predefinição: 0 2 * * *

  7. Aplique as alterações de configuração ao novo cluster. Por exemplo:
    helm upgrade datastore apigee-datastore/ \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f OVERRIDES_FILE.yaml
    

    Em que OVERRIDES_FILE é o caminho para o ficheiro de substituições que acabou de editar.

  8. Valide a tarefa de cópia de segurança. Por exemplo:
    kubectl get cronjob -n APIGEE_NAMESPACE
      NAME                      SCHEDULE     SUSPEND   ACTIVE   LAST SCHEDULE   AGE
      apigee-cassandra-backup   33 * * * *   False     0        <none>          94s

Inicie uma cópia de segurança manual

As cópias de segurança do Cassandra são geradas automaticamente de acordo com a programação cron definida no ficheiro overrides.yaml.

Para iniciar uma cópia de segurança manual, use este comando:

kubectl create job -n APIGEE_NAMESPACE --from=cronjob/apigee-cassandra-backup BACKUP_POD_NAME