Mettre hors service une organisation hybride

Ce document décrit les étapes à suivre pour mettre hors service une organisation dans un déploiement hybride. La mise hors service d'une organisation implique la suppression de toutes les données qui lui sont associées dans l'ensemble des pods Cassandra des clusters Kubernetes.

Limites

Vous ne pouvez mettre hors service qu'une seule organisation à la fois. Il n'est pas possible de mettre hors service plusieurs organisations simultanément.

Obtenir le nom de l'organisation

Certaines commandes indiquées dans ces instructions nécessitent l'utilisation d'un nom d'organisation correctement formaté.

Pour obtenir le nom de l'organisation à utiliser dans les commandes de cette page :

  1. Récupérez le nom de l'organisation dans le fichier overrides.yaml de l'organisation.
  2. Si le nom de l'organisation contient des tirets ("-"), remplacez-les par des traits de soulignement ("_").

Instructions

Suivez les instructions ci-dessous pour mettre hors service une organisation dans un déploiement hybride.

  1. Sauvegardez l'organisation.
    1. Si ce n'est pas déjà fait, activez les sauvegardes sur le déploiement hybride. Dans les configurations multirégionales, utilisez le déploiement hybride fonctionnant dans la région principale. Pour en savoir plus sur les sauvegardes hybrides, consultez la page Présentation de la sauvegarde Cassandra.
    2. Déclenchez un job de sauvegarde hybride en exécutant la commande suivante :

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

      BACKUP_JOB_NAME peut être n'importe quel nom de conteneur valide.

    3. Une fois le job de sauvegarde terminé, suivez les instructions des sections "Vérifier l'état du job de sauvegarde" et "Vérifier les journaux de sauvegarde" de la page Surveiller les sauvegardes pour vérifier que la sauvegarde a bien été effectuée.

  2. (Facultatif) Si vous avez configuré Apigee Telemetry (Metrics et Logger) sur l'organisation à supprimer, suivez les instructions suivantes pour les reconfigurer afin que les métriques et les données de journal s'appliquent à une nouvelle organisation ou à un nouveau projet.
    1. Exécutez cette commande pour l'organisation à laquelle vous souhaitez envoyer les données. Veillez à utiliser le fichier overrides.yaml de l'organisation. Par exemple, si l'organisation à mettre hors service est "test-dev", le fichier overrides.yaml doit contenir un champ d'organisation org: test-dev.
      helm upgrade telemetry apigee-telemetry/ \
        --namespace apigee \
        --atomic \
        -f OVERRIDES_FILE.yaml
      
    2. Exécutez cette commande en veillant à utiliser l'organisation ou le projet approprié :
      kubectl -n apigee get apigeetelemetry apigee-telemetry -oyaml | grep `gcpProjectID:`
  3. Supprimez les ressources Kubernetes de l'organisation du déploiement hybride.
    1. Vérifiez que le contexte actuel est le contexte approprié pour le cluster Kubernetes source.
      kubectl config current-context

      Si nécessaire, définissez le contexte Kubernetes.

      Répertoriez vos contextes actuels pour afficher le nom de contexte pour chaque cluster :

      kubectl config get-contexts

      Définissez le contexte du cluster et de la région que vous souhaitez mettre hors service :

      kubectl config use-context CONTEXT_NAME

      CONTEXT_NAME est le nom du contexte pour le cluster et la région.

      Exemple :

          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. Supprimez l'hôte virtuel.

      Répétez cette opération pour chaque groupe d'environnements :

      helm -n apigee delete ENV_GROUP_NAME
      
    3. Supprimez les environnements. Répétez cette opération pour chaque environnement :
      helm -n apigee delete ENV_NAME
      
    4. Supprimez l'organisation Apigee.
      helm -n apigee delete ORG_NAME
      
  4. Supprimez les données de l'organisation du déploiement hybride. Une fois cette étape terminée, toutes les données de l'organisation seront supprimées du déploiement hybride.
    1. Procédez à l'exécution sur le pod apigee-cassandra-default-0 :
      kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
      
    2. Exécutez la commande suivante. Copiez la liste de tous les noms affichés dans la sortie. Cette liste sera nécessaire ultérieurement.
      find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -printf "%f\n"

      Pour savoir comment rechercher et préparer ORG_NAME, consultez la section Obtenir le nom de l'organisation.

      Quittez le pod apigee-cassandra-default-0.

    3. Créez un pod client de débogage Cassandra, comme décrit dans la section Créer un conteneur client pour le débogage. Passez à l'étape suivante après avoir reçu une invite cqlsh.
    4. Exécutez les commandes suivantes dans l'invite cqlsh :
      desc keyspaces;

      Vérifiez que cette commande ne renvoie aucune erreur.

      Pour chaque nom de la liste créée précédemment dans apigee apigee-cassandra-default-0, exécutez les commandes suivantes :

      drop keyspace ;

      Quittez le pod client de débogage Cassandra.

    5. Redémarrez progressivement tous les pods Cassandra. Le redémarrage des pods Cassandra peut être effectué dans n'importe quel ordre, à condition qu'un seul pod Cassandra soit redémarré à la fois. Pour les déploiements multirégionaux, redémarrez progressivement tous les pods Cassandra de chaque région hybride.

      Exécutez la commande suivante et vérifiez que l'état indique "En cours d'exécution" :

      kubectl get apigeeds -n apigee

      Redémarrez un pod Cassandra à l'aide de la commande suivante :

      kubectl delete pod -n apigee CASSANDRA_POD_NAME

      Attendez que le pod atteigne l'état Running à l'aide de la commande suivante :

      kubectl get pods -n apigee

      Redémarrez le pod Cassandra suivant.

    6. Après avoir exécuté les commandes cqlsh, exécutez les commandes suivantes sur tous les pods Cassandra du déploiement hybride. Pour les déploiements hybrides multirégionaux, exécutez les commandes sur tous les pods Cassandra de toutes les régions hybrides.
      kubectl exec -it -n apigee CASSANDRA_POD_NAME -- /bin/bash
      find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2

      Pour savoir comment rechercher et préparer ORG_NAME, consultez la section Obtenir le nom de l'organisation.

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