Comment supprimer des composants Operator Lifecycle Manager ?

Operator Lifecycle Manager (OLM) n'est pas installé ni géré sur les clusters qui exécutent Kubernetes version 1.23 ou ultérieure. Toutefois, les clusters qui ont été mis à niveau de la version 1.22 vers la version 1.23 ou une version ultérieure peuvent encore avoir les composants OLM installés. Si vous n'utilisez pas de composants OLM sur votre cluster, procédez comme suit pour les supprimer.

Si vous souhaitez continuer à utiliser les composants de OLM dans votre cluster, ou si vous souhaitez installer et exécuter OLM sur un cluster qui utilise la version 1.23 ou une version ultérieure, vous devez gérer les mises à jour vous-même. Reportez-vous à la documentation de la source ouverte OLM.

  1. Vérifiez que l'opérateur OLM est installé.

    kubectl get deploy -n ibm-system olm-operator
    

    Exemple de sortie

    NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
    olm-operator                           1/1     1            1           6mo
    
  2. Vérifiez si vous utilisez les versions 1.4 à 1.9 du module complémentaire Istio. Istio les versions 1.4 à 1.9 ne sont pas prises en charge et utilisent OLM. Si vous utilisez ces versions, passez à une version prise en charge du module complémentaire Istio qui n'utilise pas l'opérateur OLM. Après avoir effectué une mise à niveau vers une version prise en charge de Istio, vous pouvez supprimer l'opérateur OLM.

    ibmcloud ks cluster addons -c CLUSTER
    

    Dans cet exemple, OLM est toujours utilisé par la version complémentaire Istio 1.5. Mettez à niveau le module complémentaire, puis poursuivez ces étapes.

    NAME            Version     Health State   Health Status
    istio           1.5         normal         Addon Ready
    
  3. Vérifiez si des opérateurs en cours d'utilisation ont été déployés via OLM en répertoriant les versions de service de cluster.

    kubectl get clusterserviceversions -A
    

    Exemple de sortie d'un opérateur déployé via OLM.

    NAMESPACE                              NAME            DISPLAY          VERSION   REPLACES   PHASE
    kubernetes-operator-lifecycle-manager   packageserver   Package Server   0.19.0               Succeeded
    

    Si l'adresse clusterserviceversions figure dans le résultat, vous utilisez encore des opérateurs qui sont gérés par OLM. Vous pouvez continuer à utiliser le site OLM, mais vous êtes responsable de la gestion des mises à jour. Les étapes suivantes supposent que vous n'utilisez plus OLM et fournissent des instructions de nettoyage. Ne continuez pas si vous utilisez toujours OLM.

  4. S'il n'y a pas d'instances clusterserviceversions dans la sortie de l'étape 3, vous n'utilisez pas OLM. Vous pouvez maintenant obtenir la liste des ressources qui ont été créées par OLM et les supprimer.

  5. Pour chaque CRD de la liste suivante, obtenez les ressources personnalisées (CR) dans tous les espaces de nom.

    kubectl get catalogsources.operators.coreos.com -A
    kubectl get clusterserviceversions.operators.coreos.com -A
    kubectl get installplans.operators.coreos.com -A
    kubectl get operatorgroups.operators.coreos.com -A
    kubectl get operators.operators.coreos.com -A
    kubectl get subscriptions.operators.coreos.com -A
    
  6. Si vous trouvez des ressources personnalisées, déterminez si vous avez encore besoin de ces ressources.

    • Vous pouvez toujours voir les groupes d'opérateurs olm-operators et ibm-operators qui ont été déployés par OLM. Ces groupes d'opérateurs faisaient partie de l'installation d' OLM. Etant donné que vous ne disposez d'aucune instance cluseterserviceversions dans les étapes précédentes, vous n'utilisez plus ces groupes d'opérateurs.
    • Si la version 1.4- 1.9 du module complémentaire Istio a été installée dans le passé, il se peut que vous voyiez encore la ressource istio operators.operators.coreos.com dans l'espace de noms ibm-operators. Si vous avez mis à jour Istio vers au moins la version 1.10, vous n'avez plus besoin de cette ressource.
    • Si vous trouvez d'autres ressources personnalisées, il est probable que vous ne les utilisiez pas car vous n'avez pas d'instances clusterserviceversions dans les étapes précédentes. Toutefois, examinez chaque ressource personnalisée avec votre administrateur de cluster au cas par cas pour déterminer si elle est toujours utilisée.

    Les étapes suivantes supposent que vous avez terminé l'examen et vous guident dans la suppression de OLM.

  7. Si vous avez déterminé que OLM n'est pas utilisé par le module complémentaire Istio ou par d'autres opérateurs, exécutez les commandes suivantes séparément pour supprimer les ressources OLM.

    kubectl delete clusterrole aggregate-olm-edit
    kubectl delete clusterrole aggregate-olm-view
    kubectl delete deploy -n ibm-system catalog-operator
    kubectl delete deploy -n ibm-system olm-operator
    kubectl delete clusterrole system:controller:operator-lifecycle-manager
    kubectl delete serviceaccount -n ibm-system olm-operator-serviceaccount
    kubectl delete clusterrolebinding olm-operator-binding-ibm-system
    kubectl delete operatorgroup -n ibm-operators  ibm-operators
    kubectl delete operatorgroup -n ibm-system   olm-operators
    kubectl delete service -n ibm-system catalog-operator-metrics
    kubectl delete service -n ibm-system olm-operator-metrics
    
  8. Supprimez les ressources personnalisées inutilisées, puis supprimez les définitions de ressource personnalisée (CRD) qui ont été installées par OLM.

    kubectl delete catalogsources.operators.coreos.com NAME -n NAMESPACE
    
    kubectl delete crd catalogsources.operators.coreos.com
    
  9. Répétez les étapes précédentes pour chacune des CRD suivantes.

    • catalogsources.operators.coreos.com
    • clusterserviceversions.operators.coreos.com
    • installplans.operators.coreos.com
    • operatorgroups.operators.coreos.com
    • operators.operators.coreos.com
    • subscriptions.operators.coreos.com