Hybridorganisation außer Betrieb nehmen

In diesem Dokument werden die Schritte zur Außerbetriebnahme einer Organisation aus einer Hybridbereitstellung beschrieben. Durch die Außerbetriebnahme einer Organisation werden alle damit verbundenen Daten aus allen Cassandra-Pods in allen Kubernetes-Clustern gelöscht.

Beschränkungen

Es kann jeweils nur eine Organisation außer Betrieb genommen werden. Die Außerbetriebnahme mehrerer Organisationen wird nicht unterstützt.

Name der Organisation abrufen

Für einige Befehle in dieser Anleitung müssen Sie einen ordnungsgemäß formatierten Organisationsnamen verwenden.

So rufen Sie den Namen der Organisation zur Verwendung in Befehlen auf dieser Seite ab:

  1. Rufen Sie den Organisationsnamen aus der Datei overrides.yaml der Organisation ab.
  2. Wenn der Name der Organisation Bindestriche („-“) enthält, ersetzen Sie sie durch Unterstriche („_“).

Anleitung

Folgen Sie dieser Anleitung, um eine Organisation aus einer Hybridbereitstellung außer Betrieb zu nehmen.

  1. Organisation sichern
    1. Aktivieren Sie Sicherungen in der Hybridbereitstellung, falls noch nicht geschehen. Verwenden Sie in Einrichtungen mit mehreren Regionen die Hybridbereitstellung, die in der primären Region ausgeführt wird. Weitere Informationen zu Hybridsicherungen finden Sie unter Cassandra-Sicherungsübersicht.
    2. Lösen Sie den Hybrid-Sicherungsjob mit dem folgenden Befehl aus:

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

      BACKUP_JOB_NAME kann ein beliebiger gültiger Containername sein.

    3. Wenn der Sicherungsjob abgeschlossen ist, prüfen Sie anhand der Anleitung "Status des Sicherungsjobs prüfen" und "Sicherungslogs prüfen" unter Sicherungen überwachen, ob die Sicherung erfolgreich war.

  2. (Optional) Wenn Sie Apigee Telemetrie (Messwerte und Logger) für die zu löschende Organisation konfiguriert haben, führen Sie die folgenden Schritte aus, um sie neu zu konfigurieren, damit die Messwerte und Logdaten auf eine neue Organisation/Projekt angewendet werden.
    1. Führen Sie diesen Befehl für die Organisation aus, an die Sie die Daten senden möchten. Achten Sie darauf, für die Organisation die Datei overrides.yaml zu verwenden. Wenn die Organisation, die außer Betrieb genommen werden soll, beispielsweise "test-dev" ist, sollte die Datei overrides.yaml das Organisationsfeld org: test-dev enthalten.
      helm upgrade telemetry apigee-telemetry/ \
        --namespace apigee \
        --atomic \
        -f OVERRIDES_FILE.yaml
      
    2. Führen Sie diesen Befehl aus und achten Sie darauf, dass Sie die richtige Organisation/das richtige Projekt verwenden:
      kubectl -n apigee get apigeetelemetry apigee-telemetry -oyaml | grep `gcpProjectID:`
  3. Löschen Sie die Kubernetes-Ressourcen der Organisation aus der Hybridbereitstellung.
    1. Prüfen Sie, ob der aktuelle Kontext der richtige Kontext für den Kubernetes-Quellcluster ist:
      kubectl config current-context

      Legen Sie gegebenenfalls den Kubernetes-Kontext fest.

      Listen Sie Ihre aktuellen Kontexte auf, um den Kontextnamen für jeden Cluster anzuzeigen:

      kubectl config get-contexts

      Legen Sie den Kontext auf den Cluster und die Region fest, die Sie außer Betrieb nehmen möchten:

      kubectl config use-context CONTEXT_NAME

      Dabei ist CONTEXT_NAME der Kontextname für den Cluster und die Region.

      Beispiel:

          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. Löschen Sie den Virtualhost.

      Wiederholen Sie das für jede Umgebungsgruppe:

      helm -n apigee delete ENV_GROUP_NAME
      
    3. Löschen Sie die Umgebungen. Wiederholen Sie den Vorgang für jede Umgebung:
      helm -n apigee delete ENV_NAME
      
    4. Löschen Sie die Apigee-Organisation.
      helm -n apigee delete ORG_NAME
      
  4. Löschen Sie die Organisationsdaten aus der Hybridbereitstellung. Wenn dieser Schritt abgeschlossen ist, werden alle Organisationsdaten aus der Hybridbereitstellung entfernt.
    1. Führen Sie den Pod apigee-cassandra-default-0 aus:
      kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
      
    2. Führen Sie folgenden Befehl aus: Kopieren Sie die Liste aller Namen, die in der Ausgabe angezeigt werden. Diese Liste wird später benötigt.
      find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -printf "%f\n"

      Eine Anleitung zum Suchen und Vorbereiten der ORG_NAME finden Sie unter Organisationsname abrufen.

      Beenden Sie den Pod apigee-cassandra-default-0.

    3. Erstellen Sie einen Cassandra-Debugging-Client-Pod, wie unter Client-Container zur Fehlerbehebung erstellen beschrieben. Fahren Sie mit dem nächsten Schritt fort, nachdem Sie eine cqlsh-Eingabeaufforderung erhalten haben.
    4. Führen Sie die folgenden Befehle in der Eingabeaufforderung cqlsh aus:
      desc keyspaces;

      Achten Sie darauf, dass dieser Befehl keine Fehler zurückgibt.

      Führen Sie für jeden Namen in der Liste, die zuvor aus apigee apigee-cassandra-default-0 erstellt wurde, die folgenden Befehle aus:

      drop keyspace ;

      Beenden Sie den Cassandra-Debugging-Client-Pod.

    5. Führen Sie einen rollierenden Neustart aller Cassandra-Pods durch. Der Neustart der Cassandra-Pods kann in beliebiger Reihenfolge durchgeführt werden, solange nur jeweils ein Cassandra-Pod neu gestartet wird. Führen Sie für multiregionale Bereitstellungen einen rollierenden Neustart für alle Cassandra-Pods in jeder Hybridregion durch.

      Führen Sie den folgenden Befehl aus und prüfen Sie, ob der Status "Wird ausgeführt" angezeigt wird:

      kubectl get apigeeds -n apigee

      Starten Sie einen einzelnen Cassandra-Pod mit dem folgenden Befehl neu:

      kubectl delete pod -n apigee CASSANDRA_POD_NAME

      Warten Sie mit dem folgenden Befehl, bis der Pod den Status Running erreicht:

      kubectl get pods -n apigee

      Starten Sie den nächsten Cassandra-Pod neu.

    6. Führen Sie nach der Ausführung der cqlsh-Befehle die folgenden Befehle auf allen Cassandra-Pods in der Hybridbereitstellung aus. Führen Sie für multiregionale Hybridbereitstellungen die Befehle auf allen Cassandra-Pods in allen Hybridregionen aus.
      kubectl exec -it -n apigee CASSANDRA_POD_NAME -- /bin/bash
      find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2

      Eine Anleitung zum Suchen und Vorbereiten der ORG_NAME finden Sie unter Organisationsname abrufen.

      find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -exec rm -rf {} +
    7. Beenden Sie den Cassandra-Pod.