Como restaurar em uma única região

Nesta página, descrevemos como restaurar o Cassandra em uma única região.

Em uma implantação de região única, a Apigee híbrida é implantada em um único data center ou região. Se você tiver várias organizações da Apigee na implantação, o processo de restauração vai restaurar dados para todas as organizações. Em uma configuração de várias organizações, não é possível restaurar uma organização específica.

Como restaurar uma região de um backup

Escolha as instruções abaixo para a ferramenta de gerenciamento que você usa para a Apigee híbrida:

Helm

  1. Atualize os detalhes da restauração do Cassandra no arquivo overrides.yaml:

    namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster.
    cassandra:
      hostNetwork: false
      ...
      restore:
        enabled: true
        serviceAccountPath: "SA_JSON_FILE_PATH"
        dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH"
        cloudProvider: "GCP"  # required verbatim "GCP" (all caps)
        snapshotTimestamp: "TIMESTAMP"
      ...
      backup:
       enabled: false
      ...

    Em que:

    Propriedade Descrição
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace para restauração. Use o namespace como no cluster original.

    cassandra:hostNetwork

    hostNetwork é obrigatório e precisa ser sempre definido como false.

    restore:enabled A restauração é desativada por padrão. É preciso definir essa propriedade como true.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    O caminho no sistema de arquivos para a conta de serviço que você criou para o backup.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    O caminho do bucket do Cloud Storage em que os dados de backup são armazenados no seguinte formato: gs://BUCKET_NAME. O gs:// é obrigatório.

    restore:cloudProvider

    GCP

    A propriedade cloudProvider: "GCP" é obrigatória.

    restore:snapshotTimestamp

    TIMESTAMP

    O carimbo de data/hora do snapshot de backup a ser restaurado. Para verificar quais carimbos de data/hora podem ser usados, acesse dbStorageBucket e observe os arquivos presentes no bucket. Cada nome de arquivo contém um valor de carimbo de data/hora. Exemplo: backup_20210203213003_apigee-cassandra-default-0.tgz

    Onde 20210203213003 é o valor snapshotTimestamp que você usaria se quisesse restaurar os backups criados nesse momento.

    backup:enabled Defina essa propriedade como false caso ela tenha sido configurada anteriormente como true.
  2. Caso você não tenha um cluster limpo para começar, siga a documentação Desativar uma região híbrida para Helm para deixar sua instalação híbrida atual em um estado limpo (deixe o Gerenciador de certificados instalado). Isso traria o mesmo estado que se você tivesse seguido o Manual de configuração do ambiente de execução do Helm até o início da Etapa 11.

  3. Verifique se não há pods restantes nos namespaces da Apigee:

    kubectl get pods -n apigee
            kubectl get pods -n apigee-system
  4. Se você estiver usando o backup CSI, verifique se os volumesnapshots que quer usar no processo de restauração é exibido. Para isso, execute o seguinte comando:

    kubectl get volumesnapshot -n apigee
              
  5. Instale todos os componentes híbridos, um por um, conforme descrito na Etapa 11 no manual de instalação. O pod apigee-cassandra-restore será criado quando você executar o comando para instalar o datastore, mas ele só entrará no estado running depois que você instalar o componente apigee-org.

Consulte Visão geral do backup do Cassandra para ver mais detalhes sobre o backup e a restauração do Cassandra.

apigeectl

Na sua configuração, o backup do Cassandra pode residir no Cloud Storage ou em um servidor remoto. Nos dois casos, execute as seguintes etapas para restaurar:

  1. Verifique a versão híbrida.
    apigeectl version
    Verifique se a versão é a mesma que criou os arquivos de backup no armazenamento.
  2. Confirme se o cluster do Kubernetes que você está restaurando não tem uma instalação híbrida da Apigee anterior. Se você estiver restaurando para o cluster já existente, use os seguintes comandos para excluir a instalação atual da Apigee híbrida:
    apigeectl delete -f overrides.yaml
    kubectl -n apigee get apigeedatastore,apigeeredis,apigeetelemetry,org,env,arc # The output should be empty.
    apigeectl delete --all -f overrides.yaml
  3. Abra o arquivo overrides.yaml e defina as propriedades restore para os valores desejados:

    Cloud Storage

    Parâmetros

    namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster.
    cassandra:
      hostNetwork: false
      ...
      restore:
        enabled: true
        serviceAccountPath: "SA_JSON_FILE_PATH"
        dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH"
        cloudProvider: "GCP"  # required verbatim "GCP" (all caps)
        snapshotTimestamp: "TIMESTAMP"
      ...
      backup:
        enabled: false
        serviceAccountPath: "SA_JSON_FILE_PATH"
        dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH"
        cloudProvider: "GCP"  # required verbatim "GCP" (all caps)
        schedule: "SCHEDULE"

    Exemplo

    namespace: apigee
    cassandra:
      hostNetwork: false
      ...
      restore:
        enabled: true
        serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json"
        dbStorageBucket: "gs://myname-cassandra-backup"
        cloudProvider: "GCP"
        snapshotTimestamp: "20201001183903"
    
      ...
      backup:
        enabled: false
        serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json"
        dbStorageBucket: "gs://myname-cassandra-backup"
        cloudProvider: "GCP"
        schedule: "0 2 * * *"
      ...

    Em que:

    Propriedade Descrição
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace para restauração. Use o namespace como no cluster original.

    cassandra:hostNetwork

    hostNetwork é obrigatório e precisa ser sempre definido como false.

    restore:enabled A restauração é desativada por padrão. É preciso definir essa propriedade como true.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    O caminho no sistema de arquivos para a conta de serviço que você criou para o backup.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    O caminho do bucket do Cloud Storage em que os dados de backup são armazenados no seguinte formato: gs://BUCKET_NAME. O gs:// é obrigatório.

    restore:cloudProvider

    GCP

    A propriedade cloudProvider: "GCP" é obrigatória.

    restore:snapshotTimestamp

    TIMESTAMP

    O carimbo de data/hora do snapshot de backup a ser restaurado. Para verificar quais carimbos de data/hora podem ser usados, acesse dbStorageBucket e observe os arquivos presentes no bucket. Cada nome de arquivo contém um valor de carimbo de data/hora. Exemplo: backup_20210203213003_apigee-cassandra-default-0.tgz

    Onde 20210203213003 é o valor snapshotTimestamp que você usaria se quisesse restaurar os backups criados nesse momento.

    backup:enabled Defina essa propriedade como false caso ela tenha sido configurada anteriormente como true.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

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

    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

    A propriedade cloudProvider: "GCP" é obrigatória.

    backup:schedule

    SCHEDULE

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

    Não são do Cloud Storage

    Parâmetros

      namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster.
      cassandra:
        hostNetwork: false
        ...
        restore:
          enabled: true
          keyFile: "PATH_TO_PRIVATE_KEY_FILE"
          server: "BACKUP_SERVER_IP"
          storageDirectory: "/home/apigee/BACKUP_DIRECTORY"
          cloudProvider: "HYBRID"  # required verbatim "HYBRID" (all caps)
          snapshotTimestamp: "TIMESTAMP"
        ...
        backup:
          enabled: false
          keyFile: "PATH_TO_PRIVATE_KEY_FILE"
          server: "BACKUP_SERVER_IP"
          storageDirectory: "/home/apigee/BACKUP_DIRECTORY"
          cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps)
          schedule: "SCHEDULE"
      

    Exemplo

      namespace: apigee
      cassandra:
        hostNetwork: false
        ...
        restore:
          enabled: true
          keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key"
          server: "34.56.78.90"
          storageDirectory: "/home/apigee/cassbackup"
          cloudProvider: "HYBRID"
          snapshotTimestamp: "20201001183903"
        ...
        backup:
          enabled: false
          keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key"
          server: "34.56.78.90"
          storageDirectory: "/home/apigee/cassbackup"
          cloudProvider: "HYBRID"
          schedule: "0 2 * * *"
        ...

    Em que:

    Propriedade Descrição
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace para restauração. Use o mesmo namespace de nome do cluster original.

    cassandra:hostNetwork

    hostNetwork é obrigatório e precisa ser sempre definido como false.

    restore:enabled A restauração é desativada por padrão. É preciso definir essa propriedade como true.
    restore:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    O caminho no sistema de arquivos local para o arquivo de chave privada SSH (chamado ssh_key na etapa em que você criou o par de chaves SSH).

    restore:server

    BACKUP_SERVER_IP

    O endereço IP do servidor de backup.

    restore:storageDirectory

    BACKUP_DIRECTORY

    O nome do diretório de backup no servidor de backup. Precisa ser um diretório dentro de home/apigee (o diretório de backup se chama cassandra_backup na etapa em que você criou o diretório de backup).

    restore:cloudProvider

    HYBRID

    A propriedade cloudProvider: "HYBRID" é obrigatória.

    restore:snapshotTimestamp

    TIMESTAMP

    O carimbo de data/hora do snapshot de backup a ser restaurado. Para verificar quais carimbos de data/hora podem ser usados, acesse dbStorageBucket e observe os arquivos presentes no bucket. Cada nome de arquivo contém um valor de carimbo de data/hora. Por exemplo, backup_20210203213003_apigee-cassandra-default-0.tgz

    Onde 20210203213003 é o valor snapshotTimestamp que você usaria se quisesse restaurar os backups criados nesse momento.

    backup:enabled Defina essa propriedade como false caso ela tenha sido definida anteriormente como true.
    backup:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    O caminho no sistema de arquivos local para o arquivo de chave privada SSH (chamado ssh_key na etapa em que você criou o par de chaves SSH).

    backup:server

    BACKUP_SERVER_IP

    O endereço IP do servidor de backup.

    backup:storageDirectory

    BACKUP_DIRECTORY

    O nome do diretório de backup no servidor de backup. Precisa ser um diretório dentro de home/apigee (o diretório de backup se chama cassandra_backup na etapa em que você criou o diretório de backup).

    backup:cloudProvider

    HYBRID

    A propriedade cloudProvider: "HYBRID" é obrigatória.

    backup:schedule

    SCHEDULE

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

  4. Crie uma nova implantação híbrida de ambiente de execução. Isso criará um novo cluster do Cassandra e começará a restaurar os dados de backup no cluster:
    ${APIGEECTL_HOME}/apigeectl init  -f overrides/overrides.yaml
    ${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
    ${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml --restore
    ${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml

Verifique o progresso do job de restauração e confirme se apigeeds e todos os outros pods estão ativos:

  1. Verificar apigeeds:
    kubectl get apigeeds -n apigee
  2. Verifique todos os outros pods:
    kubectl get pods -n apigee

Após a conclusão bem-sucedida da restauração e da confirmação de que os componentes do ambiente de execução estão íntegros, recomendamos que você configure um backup no cluster:

  1. Remova a configuração restore do arquivo overrides-restore.yaml.
  2. Adicione a configuração backup ao arquivo overrides-restore.yaml.
  3. Aplique a configuração backup com o seguinte comando:

    Helm

    helm upgrade datastore apigee-datastore/ \
    --install \
    --namespace apigee \
    --atomic \
    -f overrides.yaml

    apigeectl

    ./apigeectl apply -f ../overrides.yaml