Eseguire la dismissione di un'organizzazione ibrida

Questo documento illustra i passaggi per il ritiro di un'organizzazione da un deployment ibrido. Il ritiro di un'organizzazione comporta l'eliminazione di tutti i dati relativi all'organizzazione in tutti i pod Cassandra di tutti i cluster Kubernetes.

Limitazioni

È possibile ritirare una sola organizzazione alla volta. Il ritiro simultaneo di più organizzazioni non è supportato.

Ottenere il nome dell'organizzazione

Alcuni comandi in queste istruzioni richiedono l'utilizzo di un nome dell'organizzazione formattato correttamente.

Per ottenere il nome dell'organizzazione da utilizzare nei comandi in questa pagina:

  1. Recupera il nome dell'organizzazione dal file overrides.yaml dell'organizzazione.
  2. Se il nome dell'organizzazione contiene trattini ("-"), sostituiscili con trattini bassi ("_").

Istruzioni

Segui queste istruzioni per eseguire il ritiro di un'organizzazione da un deployment ibrido.

  1. Esegui il backup dell'organizzazione
    1. Se non sono già abilitati, attiva i backup nel deployment ibrido. Nelle configurazioni multiregione, utilizza il deployment ibrido operativo nella regione principale. Consulta Panoramica del backup di Cassandra per informazioni sui backup ibridi.
    2. Attiva un job di backup ibrido utilizzando il seguente comando:

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

      BACKUP_JOB_NAME può essere qualsiasi nome di contenitore valido.

    3. Al termine del job di backup, segui le istruzioni "Verifica lo stato del job di backup" e "Verifica i log di backup" in Monitoraggio dei backup per verificare che il backup sia riuscito.

  2. (Facoltativo) Se hai configurato Apigee Telemetry (Metriche e Logger) nell'organizzazione da eliminare, segui questi passaggi per riconfigurarli in modo che i dati delle metriche e dei log vengano applicati a una nuova organizzazione/un nuovo progetto.
    1. Esegui questo comando per l'organizzazione a cui vuoi inviare i dati. Assicurati di utilizzare il file overrides.yaml per l'organizzazione. Ad esempio, se l'organizzazione da ritirare è "test-dev", il file overrides.yaml deve contenere un campo org: test-dev dell'organizzazione.
      helm upgrade telemetry apigee-telemetry/ \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f OVERRIDES_FILE.yaml
      
    2. Esegui questo comando, assicurandoti di utilizzare l'organizzazione/il progetto corretti:
      kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry -oyaml | grep `gcpProjectID:`
  3. Elimina le risorse Kubernetes dell'organizzazione dal deployment ibrido.
    1. Verifica che il contesto corrente sia quello corretto per il cluster Kubernetes di origine:
      kubectl config current-context

      Se necessario, imposta il contesto Kubernetes.

      Elenca i tuoi contesti attuali per vedere il nome del contesto per ogni cluster:

      kubectl config get-contexts

      Imposta il contesto del cluster e della regione che vuoi ritirare:

      kubectl config use-context CONTEXT_NAME

      dove CONTEXT_NAME è il nome del contesto per il cluster e la regione.

      Ad esempio:

          kubectl config get-contexts
          CURRENT   NAME                                                   CLUSTER                                                AUTHINFO                                               NAMESPACE
                    gke_example-org-1_us-central1_example-cluster-1        gke_example-org-1_us-central1_example-cluster-1        gke_example-org-1_us-central1_example-cluster-1        apigee
          *         gke_example-org-1_us-central1_example-cluster-2        gke_example-org-1_us-central1_example-cluster-2        gke_example-org-1_us-central1_example-cluster-2        apigee
                    gke_example-org-1_us-west1_example-cluster-2           gke_example-org-1_us-west1_example-cluster-2           gke_example-org-1_us-west1_example-cluster-2           apigee
      
          kubectl config use-context gke_example-org-1_us-west1_example-cluster-2
    2. Elimina l'host virtuale.

      Ripeti questa operazione per ogni gruppo di ambienti:

      helm -n APIGEE_NAMESPACE delete ENV_GROUP_NAME
      
    3. Elimina gli ambienti. Ripeti questa operazione per ogni ambiente:
      helm -n APIGEE_NAMESPACE delete ENV_NAME
      
    4. Elimina l'organizzazione Apigee.
      helm -n APIGEE_NAMESPACE delete ORG_NAME
      
  4. Elimina i dati dell'organizzazione dal deployment ibrido. Al termine di questo passaggio, tutti i dati dell'organizzazione non saranno più presenti nel deployment ibrido.
    1. Esegui nel pod apigee-cassandra-default-0:
      kubectl exec -it -n APIGEE_NAMESPACE apigee-cassandra-default-0 -- /bin/bash
      
    2. Esegui questo comando. Copia l'elenco di tutti i nomi visualizzati nell'output. Questo elenco ti servirà in un secondo momento.
      find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -printf "%f\n"

      Consulta Ottenere il nome dell'organizzazione per istruzioni su come trovare e preparare il ORG_NAME.

      Esci dal pod apigee-cassandra-default-0.

    3. Crea un pod di client di debug Cassandra come descritto in Creare un contenitore client per il debug. Vai al passaggio successivo dopo aver ricevuto una richiesta cqlsh.
    4. Esegui i seguenti comandi nel prompt cqlsh:
      desc keyspaces;

      Assicurati che questo comando non restituisca errori.

      Per ogni nome nell'elenco creato in precedenza dal file apigee apigee-cassandra-default-0, esegui i seguenti comandi:

      drop keyspace KEYSPACE_NAME;

      Esci dal pod del client di debug Cassandra.

    5. Esegui un riavvio graduale di tutti i pod Cassandra. Il riavvio dei pod Cassandra può essere eseguito in qualsiasi ordine, purché venga riavviato un solo pod Cassandra alla volta. Per i deployment in più regioni, esegui un riavvio graduale su tutti i pod Cassandra in ogni regione ibrida.

      Esegui il seguente comando e verifica che lo stato sia "In esecuzione":

      kubectl get apigeeds -n APIGEE_NAMESPACE

      Riavvia un singolo pod Cassandra con il seguente comando:

      kubectl delete pod -n APIGEE_NAMESPACE CASSANDRA_POD_NAME

      Attendi che il pod raggiunga lo stato Running utilizzando:

      kubectl get pods -n APIGEE_NAMESPACE

      Riavviare il pod Cassandra successivo.

    6. Dopo aver eseguito i comandi cqlsh, esegui i comandi seguenti su tutti i pod Cassandra nel deployment ibrido. Per i deployment ibridi multi-regione, esegui i comandi su tutti i pod Cassandra in tutte le regioni ibride.
      kubectl exec -it -n APIGEE_NAMESPACE CASSANDRA_POD_NAME -- /bin/bash
      find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2

      Consulta Ottenere il nome dell'organizzazione per istruzioni su come trovare e preparare il ORG_NAME.

      find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -exec rm -rf {} +
    7. Esci dal pod Cassandra.