Désinstallation manuelle d' Instana, édition personnalisée

Vous pouvez désinstaller manuellement IBM Instana Custom Edition d'un environnement Kubernetes ou Red Hat OpenShift en supprimant les ressources personnalisées, les opérateurs, les magasins de données et les espaces de noms associés, dans l'ordre inverse de l'installation.

Avant de commencer

Avant de lancer la désinstallation, assurez-vous que les conditions préalables suivantes sont remplies :

  • Les privilèges d'administrateur de cluster sont disponibles.
  • Toutes les données de surveillance nécessaires ont été sauvegardées.
  • Instana les agents sont arrêtés ou déconnectés du backend.
  • Les fichiers de configuration personnalisés, les certificats et les informations de licence sont exportés s'ils doivent être réutilisés.
  • Une fenêtre de maintenance est approuvée, le cas échéant.

A propos de cette tâche

Cette procédure s'applique aux déploiements qui ont été installés manuellement à l'aide des ressources personnalisées « Enterprise Operator », « Core » et « Unit » d' Instana. Le processus de désinstallation suit l'ordre inverse de la séquence d'installation afin de garantir que toutes les ressources dépendantes soient supprimées correctement et d'éviter la création d'objets orphelins dans Kubernetes.

Les étapes doivent être effectuées dans l'ordre suivant :

  1. Supprimer les ressources personnalisées de l'unité
  2. Supprimer la ressource personnalisée « Core »
  3. Désinstaller l'opérateur d'entreprise d' Instana
  4. Supprimer les composants du magasin de données
  5. Désinstaller « cert-manager »
  6. Supprimer les CRD « Instana »
  7. Supprimer les SCC (uniquement Red Hat OpenShift )
  8. Supprimer les rôles de cluster, les associations de rôles de cluster et les configurations de webhooks

Procédure

  1. Depuis votre terminal, vérifiez les ressources Unit existantes dans l'espace instana-units de noms.
    Draft comment: Bob
    Converted section 4 "Remove Unit Resources" into task steps. Verification substeps are added as info/stepresult elements for proper DITA structure.

    Les ressources d'unité correspondent aux services d' Instana s propres à chaque locataire et dépendent de la ressource « Core ». Vous devez retirer les ressources de l'unité avant de supprimer le Core.

    kubectl get units -n instana-units

    Exemple de sortie :

    NAME              VERSION   INSTANA VERSION   DB MIGRATION STATUS   COMPONENTS STATUS
    tenant0-unit0     1.2.0     3.289.589-0       Ready                 Ready
  2. Supprimez les ressources de l'unité.
    • Pour supprimer une ressource « Unit » par son nom, exécutez la commande suivante :
      kubectl delete unit <unit-name> -n instana-units
    • Pour supprimer une ressource « Unit » à l'aide d'un fichier de configuration, exécutez la commande suivante :
      kubectl delete -f path/to/unit.yaml
    unit.instana.io "tenant0-unit0" deleted from instana-units namespace
  3. Vérifiez que toutes les ressources de l'unité ont bien été retirées.
    kubectl get units -n instana-units
    La commande renvoie le message suivant :No resources found.
  4. Répertoriez les secrets dans l'espace instana-units de noms.
    kubectl get secrets -n instana-units

    Exemple de sortie :

    instana-registry    kubernetes.io/dockerconfigjson   1      5h23m
    tenant0-unit0       Opaque                           1      3h31m
  5. Supprimez les instana-registry secrets et tenant0-unit0 .
    kubectl delete secret instana-registry tenant0-unit0 -n instana-units
  6. Supprimer l'espace instana-units de noms.
    kubectl delete namespace instana-units
    namespace "instana-units" deleted
  7. Vérifiez les ressources Core existantes dans l'espace instana-core de noms.
    Draft comment: Bob
    Converted section 5 "Remove Core Resource" into task steps.

    La ressource « Core » fournit les services d'infrastructure partagés utilisés par toutes les unités.

    kubectl get core -n instana-core

    Exemple de sortie :

    instana-core   1.2.0     3.289.589-0       Ready                 Ready
  8. Supprimez la ressource « Core » en utilisant l'une des méthodes suivantes.
    • Supprimez la ressource « Core » en indiquant son nom :
      kubectl delete core <core-name> -n instana-core
    • Supprimez la ressource Core à l'aide d'un fichier de configuration :
      kubectl delete -f path/to/core.yaml
    core.instana.io "instana-core" deleted from instana-core namespace
  9. Vérifiez que la ressource Core a bien été supprimée.
    kubectl get core -n instana-core
    La commande renvoie le message suivant :No resources found. Attendez que tous les pods et services liés à Core soient arrêtés avant de continuer.
  10. Répertoriez les secrets dans l'espace instana-core de noms.
    kubectl get secrets -n instana-core

    Exemple de sortie :

    instana-core       Opaque                           1      3h42m
    instana-registry   kubernetes.io/dockerconfigjson   1      5h34m
    instana-tls        kubernetes.io/tls                2      4h1m
  11. instana-registrySupprimez les secrets, instana-core, et instana-tls .
    kubectl delete secret instana-registry instana-core instana-tls -n instana-core
  12. Facultatif : si votre déploiement s'effectue sur un cluster Red Hat OpenShift, supprimez les routes dans l'espace instana-core de noms.
    Draft comment: Bob
    Converted the OCP-specific route deletion note into an optional step with proper DITA importance attribute.

    Exécutez la commande suivante pour afficher la liste des routes :

    oc get routes -n instana-core

    Exemple de sortie :

    NAME          HOST/PORT                              PATH   SERVICES   PORT    TERMINATION   WILDCARD
    acceptor      acceptor                                      acceptor   8443    passthrough   None
    base-domain   base-domain.instana.fyre.ibm.com               gateway    https   passthrough   None

    Supprimez les itinéraires en indiquant le nom de chaque itinéraire :

    oc delete route <route-name-1> <route-name-2> -n instana-core

    Exemple :

    oc delete route acceptor base-domain opamp-acceptor otlp-grpc-acceptor otlp-http-acceptor unit0-tenant0-ui -n instana-core
  13. Supprimer l'espace instana-core de noms.
    kubectl delete namespace instana-core
  14. Vérifiez les déploiements des opérateurs dans l'espace instana-operator de noms.
    Draft comment: Bob
    Converted section 6 "Remove Instana Enterprise Operator" into task steps.

    L'opérateur d'entreprise gère le cycle de vie des ressources « Core » et « Unit » d' Instana. Une fois ces ressources supprimées, l'opérateur peut être retiré en toute sécurité.

    kubectl get deployments -n instana-operator

    Exemple de sortie :

    NAME                       READY   UP-TO-DATE   AVAILABLE   AGE
    instana-operator           1/1     1            1           5h44m
    instana-operator-webhook   1/1     1            1           5h44m
  15. Supprimez les déploiements de l'opérateur.
    kubectl delete deployment instana-operator -n instana-operator
    kubectl delete deployment instana-operator-webhook -n instana-operator
  16. Répertorier les services de l'espace instana-operator de noms.
    kubectl get svc -n instana-operator

    Exemple de sortie :

    NAME                       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
    instana-operator-webhook   ClusterIP   172.30.115.218   <none>        443/TCP   5h46m
  17. Supprimez le instana-operator-webhook service.
    kubectl delete svc instana-operator-webhook -n instana-operator
  18. Vérifiez que toutes les ressources de l'espace instana-operator de noms ont bien été supprimées.
    kubectl get all -n instana-operator
    La commande renvoie le message suivant :No resources found. Attendez que tous les pods « operator » et « webhook » soient arrêtés avant de continuer.
  19. Supprimez le instana-registry secret de l'espace instana-operator de noms.
    kubectl get secrets -n instana-operator

    Exemple de sortie :

    instana-registry   kubernetes.io/dockerconfigjson   1      5h55m
    kubectl delete secret instana-registry -n instana-operator
  20. Supprimer l'espace instana-operator de noms.
    kubectl delete namespace instana-operator
  21. Supprimez les composants du magasin de données en fonction de l'architecture de déploiement.
    Draft comment: Bob
    Converted section 7 "Remove Datastore Components" into a single step with substeps per datastore. Each datastore is a separate substep group.

    Instana Custom Edition s'appuie sur plusieurs services de stockage de données en arrière-plan. Ne supprimez ces composants qu'après avoir supprimé les ressources « Core » et « Unit ».

    1. Supprimer Beeinstana et l'opérateur Beeinstana.

      Remplacez « /path/to/configuration/file.yaml » par le chemin d'accès au fichier de configuration que vous avez utilisé pour déployer Beeinstana.

      kubectl delete -f /path/to/configuration/file.yaml -n beeinstana

      Une fois les pods Beeinstana supprimés, désinstallez l'opérateur Beeinstana :

      helm uninstall beeinstana -n beeinstana

      Attendez que tous les pods Beeinstana et les pods opérateurs Beeinstana soient arrêtés. Ensuite, supprimez les secrets :

      kubectl get secrets -n beeinstana

      Exemple de sortie :

      beeinstana-admin-creds     Opaque                           2      31h
      beeinstana-cas             Opaque                           0      31h
      beeinstana-kafka-creds     Opaque                           2      30h
      instana-registry           kubernetes.io/dockerconfigjson   1      31h
      kubectl delete secret instana-registry beeinstana-admin-creds beeinstana-kafka-creds beeinstana-cas -n beeinstana

      Supprimez les revendications de volume persistant (PVC) et l'espace de noms :

      kubectl get pvc -n beeinstana
      kubectl delete pvc --all -n beeinstana
      kubectl delete namespace beeinstana
    2. Supprimez « ClickHouse, », « ClickHouse Keeper » et l'opérateur « ClickHouse ».
      kubectl delete -f clickhouse_installation.yaml -n instana-clickhouse

      Une fois les pods « ClickHouse » supprimés, désinstallez « ClickHouse Keeper » :

      kubectl delete -f clickhouse_keeper.yaml -n instana-clickhouse

      Une fois que les fichiers « ClickHouse » et « ClickHouse Keeper » ont été supprimés, désinstallez l'opérateur « ClickHouse » :

      helm uninstall clickhouse-operator -n instana-clickhouse

      Attendez que tous les pods soient arrêtés. Ensuite, supprimez la clé instana-registry secrète, les PVC et l'espace de noms :

      kubectl delete secret instana-registry -n instana-clickhouse
      kubectl get pvc -n instana-clickhouse
      kubectl delete pvc --all -n instana-clickhouse
      kubectl delete namespace instana-clickhouse
    3. Supprimez « Cassandra » et l'opérateur « cass ».
      kubectl delete -f cassandra.yaml -n instana-cassandra

      Une fois les pods « Cassandra » supprimés, désinstallez cass-operator :

      helm uninstall cass-operator -n instana-cassandra

      Attendez que tous les pods soient arrêtés. Ensuite, supprimez les secrets, les PVC et l'espace de noms :

      kubectl delete secret instana-registry instana-superuser -n instana-cassandra
      kubectl get pvc -n instana-cassandra
      kubectl delete pvc --all -n instana-cassandra
      kubectl delete namespace instana-cassandra
    4. Supprimez « PostgreSQL » et l'opérateur « CNPG ».
      kubectl delete -f postgres.yaml -n instana-postgres

      Une fois les pods « PostgreSQL » supprimés, désinstallez l'opérateur « CNPG » :

      helm uninstall cnpg -n instana-postgres

      Attendez que tous les pods soient arrêtés. Ensuite, supprimez les secrets, les PVC et l'espace de noms :

      kubectl delete secret instana-registry instanaadmin -n instana-postgres
      kubectl get pvc -n instana-postgres
      kubectl delete pvc --all -n instana-postgres
      kubectl delete namespace instana-postgres
    5. Supprimez « Kafka », le contrôleur « Kafka » et l'opérateur « Strimzi ».

      Supprimer le magasin de données « Kafka » :

      kubectl delete -f kafka.yaml -n instana-kafka

      Supprimer le contrôleur « Kafka » :

      kubectl delete -f kafka-controller.yaml -n instana-kafka

      Supprimer l'utilisateur « Kafka » :

      kubectl delete -f strimzi-kafka-user.yaml -n instana-kafka

      Une fois tous les pods « Kafka » et « controller » supprimés, désinstallez l'opérateur Strimzi :

      helm uninstall strimzi-kafka-operator -n instana-kafka

      Attendez que tous les pods soient arrêtés. Ensuite, supprimez les secrets, les PVC et l'espace de noms :

      kubectl delete secret instana-registry -n instana-kafka
      kubectl get pvc -n instana-kafka
      kubectl delete pvc --all -n instana-kafka
      kubectl delete namespace instana-kafka
    6. Supprimez « Elasticsearch » et l’opérateur « Elastic ».
      kubectl delete -f elastic.yaml -n instana-elastic

      Une fois les pods « Elasticsearch » supprimés, désinstallez l'opérateur Elastic :

      helm uninstall elastic-operator -n instana-elastic

      Attendez que tous les pods soient arrêtés. Ensuite, supprimez les secrets, les PVC et l'espace de noms :

      kubectl delete secret instana-registry -n instana-elastic
      kubectl get pvc -n instana-elastic
      kubectl delete pvc --all -n instana-elastic
      kubectl delete namespace instana-elastic
  22. Vérifiez que tous les espaces de noms des bases de données ont bien été supprimés.
    kubectl get ns
    Vérifiez qu'aucun pod ni espace de noms de stockage de données n'apparaît dans la sortie.
  23. Désinstallez « cert-manager » en supprimant ses composants et son espace de noms.
    Draft comment: Bob
    Converted section 8 "Uninstalling cert manager" into a task step.
    kubectl delete -f https://github.com/cert-manager/cert-manager/releases/download/v1.20.2/cert-manager.yaml
    Attendez que toutes les ressources et l'espace cert-manager de noms soient supprimés avant de continuer.
  24. Supprimez les définitions de ressources personnalisées (CRD) « Core » et « Unit » de l' Instana.
    Draft comment: Bob
    Converted section "Deleting the CRDs" into task steps. Separated Instana CRDs from datastore CRDs for clarity.

    Vérifiez que les CRD « Instana » existent :

    kubectl get crd | grep instana

    Exemple de sortie :

    cores.instana.io    2026-06-25T06:11:47Z
    units.instana.io    2026-06-25T06:11:47Z

    Supprimer les CRD :

    kubectl delete crd cores.instana.io units.instana.io
  25. Supprimez les CRD liés au magasin de données.

    Énumérez les CRD associés aux magasins de données :

    kubectl get crd --show-labels | grep -E 'cassandra|cnpg|kafka|strimzi|clickhouse|elastic|postgres|beeinstana'

    Supprimez les CRD répertoriés. L'exemple suivant présente tous les CRD attendus :

    kubectl delete crd \
      agents.agent.k8s.elastic.co \
      apmservers.apm.k8s.elastic.co \
      autoopsagentpolicies.autoops.k8s.elastic.co \
      backups.postgresql.cnpg.io \
      beats.beat.k8s.elastic.co \
      cassandradatacenters.cassandra.datastax.com \
      cassandratasks.control.k8ssandra.io \
      clickhouseinstallations.clickhouse.altinity.com \
      clickhouseinstallationtemplates.clickhouse.altinity.com \
      clickhousekeeperinstallations.clickhouse-keeper.altinity.com \
      clickhouseoperatorconfigurations.clickhouse.altinity.com \
      clusterimagecatalogs.postgresql.cnpg.io \
      clusters.postgresql.cnpg.io \
      databases.postgresql.cnpg.io \
      elasticmapsservers.maps.k8s.elastic.co \
      elasticsearchautoscalers.autoscaling.k8s.elastic.co \
      elasticsearches.elasticsearch.k8s.elastic.co \
      enterprisesearches.enterprisesearch.k8s.elastic.co \
      failoverquorums.postgresql.cnpg.io \
      imagecatalogs.postgresql.cnpg.io \
      kafkabridges.kafka.strimzi.io \
      kafkaconnectors.kafka.strimzi.io \
      kafkaconnects.kafka.strimzi.io \
      kafkamirrormaker2s.kafka.strimzi.io \
      kafkanodepools.kafka.strimzi.io \
      kafkarebalances.kafka.strimzi.io \
      kafkas.kafka.strimzi.io \
      kafkatopics.kafka.strimzi.io \
      kafkausers.kafka.strimzi.io \
      kibanas.kibana.k8s.elastic.co \
      logstashes.logstash.k8s.elastic.co \
      packageregistries.packageregistry.k8s.elastic.co \
      poolers.postgresql.cnpg.io \
      publications.postgresql.cnpg.io \
      scheduledbackups.postgresql.cnpg.io \
      stackconfigpolicies.stackconfigpolicy.k8s.elastic.co \
      subscriptions.postgresql.cnpg.io
  26. Facultatif : si votre déploiement s'effectue sur un cluster Red Hat OpenShift, supprimez les contraintes de contexte de sécurité (SCC).
    Draft comment: Bob
    Converted section 9 "Deleting the SCCs" into an optional OCP step.

    Énumérez les SCC associés à Instana :

    oc get scc | grep -E "cassandra|clickhouse|instana|postgres|cnpg"

    Exemple de sortie :

    cassandra-scc    false   <no value>   RunAsAny   MustRunAs   RunAsAny   RunAsAny   <no value>   false
    clickhouse-scc   false   <no value>   RunAsAny   MustRunAs   RunAsAny   RunAsAny   <no value>   false

    Supprimer les SCC :

    oc delete scc cassandra-scc clickhouse-scc
  27. Supprimez les rôles de cluster, les associations de rôles de cluster et les configurations de webhooks associées à Instana.
    Draft comment: Bob
    Converted section 10 into a task step. Condensed verbose explanation into a single actionable step with example output.

    Énumérez les ressources :

    kubectl get clusterroles,clusterrolebindings,validatingwebhookconfigurations,mutatingwebhookconfigurations \
      | grep -E "instana|cassandra|kafka|cnpg|postgres|elastic|clickhouse|beeinstana"

    Exemple de sortie :

    clusterrole.rbac.authorization.k8s.io/instana-operator                                   2026-06-25T06:11:47Z
    clusterrole.rbac.authorization.k8s.io/instana-operator-webhook                           2026-06-25T06:11:47Z
    clusterrolebinding.rbac.authorization.k8s.io/instana-operator                             ClusterRole/instana-operator          28h
    clusterrolebinding.rbac.authorization.k8s.io/instana-operator-webhook                     ClusterRole/instana-operator-webhook  28h
    validatingwebhookconfiguration.admissionregistration.k8s.io/instana-operator-webhook-validating   2   28h

    Supprimez les ressources répertoriées :

    kubectl delete \
      clusterrole/instana-operator \
      clusterrole/instana-operator-webhook \
      clusterrolebinding/instana-operator \
      clusterrolebinding/instana-operator-webhook \
      validatingwebhookconfiguration/instana-operator-webhook-validating

Résultats

L'édition personnalisée a été désinstallée. Toutes les ressources personnalisées, tous les opérateurs, tous les composants de stockage de données, tous les espaces de noms, tous les CRD et toutes les ressources RBAC sont supprimés du cluster.