Restaurar numa única região

Esta página descreve como restaurar o Cassandra numa única região.

Numa implementação de região única, o Apigee hybrid é implementado num único centro de dados ou numa região. Se tiver várias organizações do Apigee na sua implementação, o processo de restauro restaura os dados de todas as organizações. Numa configuração com várias organizações, não pode restaurar uma organização específica.

Restaurar uma região a partir de uma cópia de segurança

Escolha as instruções abaixo para a ferramenta de gestão que está a usar para o Apigee Hybrid:

Leme

  1. Atualize os detalhes de restauro do Cassandra no ficheiro 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
      ...

    Onde:

    Propriedade Descrição
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace para a restauração. Use o mesmo espaço de nomes que no cluster original.

    cassandra:hostNetwork

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

    restore:enabled O restauro está desativado por predefinição. Tem de definir esta propriedade como true.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    O caminho no seu sistema de ficheiros para a conta de serviço que criou para a cópia de segurança.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    O caminho do contentor do Cloud Storage onde os dados da cópia de segurança estão armazenados no seguinte formato: gs://BUCKET_NAME. O campo gs:// é obrigatório.

    restore:cloudProvider

    GCP

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

    restore:snapshotTimestamp

    TIMESTAMP

    A data/hora do instantâneo da cópia de segurança a restaurar. Para verificar que datas/horas podem ser usadas, aceda ao dbStorageBucket e consulte os ficheiros presentes no contentor. Cada nome de ficheiro contém um valor de carimbo de data/hora. Por exemplo, backup_20210203213003_apigee-cassandra-default-0.tgz

    Em que 20210203213003 é o valor snapshotTimestamp que usaria se quisesse restaurar as cópias de segurança criadas nesse momento.

    backup:enabled Deve definir esta propriedade como false caso tenha sido definida anteriormente como true.
  2. Caso não tenha um cluster limpo para começar, siga a documentação Desative uma região híbrida para o Helm para colocar a sua instalação híbrida existente num estado limpo (pode deixar o Cert Manager instalado). Isto leva-o a um estado igual como se tivesse seguido o manual de configuração do tempo de execução do Helm até ao início do passo 11.

  3. Verifique se não existem pods restantes nos espaços de nomes do Apigee:

    kubectl get pods -n apigee
            kubectl get pods -n apigee-system
  4. Se estiver a usar a cópia de segurança da CSI, certifique-se de que consegue ver os volumesnapshots que quer usar para o processo de restauro executando o seguinte comando:

    kubectl get volumesnapshot -n apigee
              
  5. Instale todos os componentes híbridos um a um, conforme descrito no passo 11 do manual de instalação. Tenha em atenção que o pod apigee-cassandra-restore é criado assim que executar o comando para instalar o datastore, mas só passa para o estado running depois de instalar o componente apigee-org.

Consulte a vista geral da cópia de segurança do Cassandra para ver mais detalhes sobre a cópia de segurança e o restauro do Cassandra.

apigeectl

Na sua configuração, a cópia de segurança do Cassandra pode residir no Cloud Storage ou num servidor remoto. Em qualquer dos casos, siga os passos abaixo para restaurar:

  1. Valide a versão híbrida.
    apigeectl version
    Certifique-se de que a versão é a mesma que criou os ficheiros de cópia de segurança no armazenamento.
  2. Confirme que o cluster do Kubernetes para o qual está a restaurar não tem uma instalação híbrida do Apigee anterior. Se estiver a restaurar para o cluster existente, use os seguintes comandos para eliminar a instalação do Apigee hybrid existente:
    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 ficheiro overrides.yaml e defina as propriedades restore para os valores pretendidos:

    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 * * *"
      ...

    Onde:

    Propriedade Descrição
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace para a restauração. Use o mesmo espaço de nomes que no cluster original.

    cassandra:hostNetwork

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

    restore:enabled O restauro está desativado por predefinição. Tem de definir esta propriedade como true.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    O caminho no seu sistema de ficheiros para a conta de serviço que criou para a cópia de segurança.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    O caminho do contentor do Cloud Storage onde os dados da cópia de segurança estão armazenados no seguinte formato: gs://BUCKET_NAME. O campo gs:// é obrigatório.

    restore:cloudProvider

    GCP

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

    restore:snapshotTimestamp

    TIMESTAMP

    A data/hora do instantâneo da cópia de segurança a restaurar. Para verificar que datas/horas podem ser usadas, aceda ao dbStorageBucket e consulte os ficheiros presentes no contentor. Cada nome de ficheiro contém um valor de carimbo de data/hora. Por exemplo, backup_20210203213003_apigee-cassandra-default-0.tgz

    Em que 20210203213003 é o valor snapshotTimestamp que usaria se quisesse restaurar as cópias de segurança criadas nesse momento.

    backup:enabled Deve definir esta propriedade como false caso tenha sido definida anteriormente 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 ./tools/create-service-account

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

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

    backup:cloudProvider

    GCP

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

    backup:schedule

    SCHEDULE

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

    Armazenamento não na nuvem

    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 * * *"
        ...

    Onde:

    Propriedade Descrição
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace para a restauração. Use o mesmo espaço de nomes que no cluster original.

    cassandra:hostNetwork

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

    restore:enabled O restauro está desativado por predefinição. Tem de definir esta propriedade como true.
    restore:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    O caminho no seu sistema de ficheiros local para o ficheiro de chave privada de SSH (denominado ssh_key no passo em que criou o par de chaves SSH).

    restore:server

    BACKUP_SERVER_IP

    O endereço IP do seu servidor de reserva.

    restore:storageDirectory

    BACKUP_DIRECTORY

    O nome do diretório de cópia de segurança no servidor de cópia de segurança. Tem de ser um diretório em home/apigee (o diretório de cópia de segurança chama-se cassandra_backup no passo em que criou o diretório de cópia de segurança).

    restore:cloudProvider

    HYBRID

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

    restore:snapshotTimestamp

    TIMESTAMP

    A data/hora do instantâneo da cópia de segurança a restaurar. Para verificar que datas/horas podem ser usadas, aceda ao dbStorageBucket e consulte os ficheiros presentes no contentor. Cada nome de ficheiro contém um valor de carimbo de data/hora. Por exemplo, backup_20210203213003_apigee-cassandra-default-0.tgz

    Em que 20210203213003 é o valor snapshotTimestamp que usaria se quisesse restaurar as cópias de segurança criadas nesse momento.

    backup:enabled Deve definir esta propriedade como false caso tenha sido definida anteriormente como true.
    backup:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    O caminho no seu sistema de ficheiros local para o ficheiro de chave privada de SSH (denominado ssh_key no passo em que criou o par de chaves SSH).

    backup:server

    BACKUP_SERVER_IP

    O endereço IP do seu servidor de reserva.

    backup:storageDirectory

    BACKUP_DIRECTORY

    O nome do diretório de cópia de segurança no servidor de cópia de segurança. Tem de ser um diretório em home/apigee (o diretório de cópia de segurança tem o nome cassandra_backup no passo em que criou o diretório de cópia de segurança).

    backup:cloudProvider

    HYBRID

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

    backup:schedule

    SCHEDULE

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

  4. Crie uma nova implementação de tempo de execução híbrido. Esta ação cria um novo cluster do Cassandra e começa a restaurar os dados da cópia de segurança 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 da tarefa de restauro e confirme que apigeeds e todos os outros pods estão ativos:

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

Após a conclusão com êxito do restauro e a confirmação de que os componentes de tempo de execução estão em bom estado, recomendamos que configure uma cópia de segurança no cluster:

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

    Leme

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

    apigeectl

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