Wie lösche ich Operator Lifecycle Manager-Komponenten?

Operator Lifecycle Manager (OLM) ist auf Clustern, auf denen Kubernetes Version 1.23 oder höher ausgeführt wird, nicht installiert oder verwaltet. In Clustern, für die ein Upgrade von Version 1.22 auf Version 1.23 oder höher durchgeführt wurde, sind die OLM-Komponenten möglicherweise noch installiert. Wenn Sie keine OLM-Komponenten in Ihrem Cluster verwenden, führen Sie die folgenden Schritte aus, um sie zu entfernen.

Wenn Sie die Komponenten von OLM weiterhin in Ihrem Cluster verwenden möchten oder wenn Sie OLM auf einem Cluster installieren und ausführen möchten, auf dem die Version 1.23 oder höher läuft, müssen Sie die Updates selbst verwalten. Siehe die Open-Source-Dokumentation OLM.

  1. Vergewissern Sie sich, dass der Operator OLM installiert ist.

    kubectl get deploy -n ibm-system olm-operator
    

    Beispielausgabe

    NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
    olm-operator                           1/1     1            1           6mo
    
  2. Prüfen Sie, ob Sie die Versionen 1.4 bis 1.9 des Add-ons Istio verwenden. Istio die Versionen 1.4 bis 1.9 werden nicht unterstützt und verwenden OLM. Wenn Sie diese Versionen verwenden, aktualisieren Sie auf eine unterstützte Version des Add-ons Istio, die den Operator OLM nicht verwendet. Nachdem Sie auf eine unterstützte Version von Istio aktualisiert haben, können Sie den Operator OLM löschen.

    ibmcloud ks cluster addons -c CLUSTER
    

    In dieser Beispielausgabe wird OLM noch von der Add-on-Version Istio 1.5 verwendet. Führen Sie ein Upgrade des Add-ons durch und fahren Sie anschließend mit diesen Schritten fort.

    NAME            Version     Health State   Health Status
    istio           1.5         normal         Addon Ready
    
  3. Prüfen Sie, ob Operatoren im Gebrauch sind, die über OLM bereitgestellt wurden, indem Sie die Cluster-Service-Versionen auflisten.

    kubectl get clusterserviceversions -A
    

    Beispielausgabe eines Operators, der über OLMbereitgestellt wurde

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

    Wenn in der Ausgabe clusterserviceversions aufgeführt ist, verwenden Sie immer noch Operatoren, die über OLM verwaltet werden. Sie können OLM weiterhin verwenden, sind aber für die Verwaltung der Updates verantwortlich. Bei den folgenden Schritten wird davon ausgegangen, dass Sie OLM nicht mehr verwenden, und es werden Anweisungen zum Aufräumen gegeben. Fahren Sie nicht fort, wenn Sie noch OLM verwenden.

  4. Wenn in der Ausgabe von Schritt 3 keine clusterserviceversions-Instanzen vorhanden waren, verwenden Sie OLMnicht. Sie können jetzt eine Liste der Ressourcen abrufen, die von OLM erstellt wurden, und sie entfernen.

  5. Rufen Sie für jede CRD in der folgenden Liste die angepassten Ressourcen (CRs) für alle Namensbereiche ab.

    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. Wenn Sie CRs finden, bestimmen Sie, ob Sie diese Ressourcen noch benötigen.

    • Möglicherweise werden weiterhin die Operatorgruppen olm-operators und ibm-operators angezeigt, die von OLMbereitgestellt wurden. Diese Operatorgruppen waren Teil der Installation von OLM. Da Sie in den vorherigen Schritten keine cluseterserviceversions-Instanzen haben, verwenden Sie diese Operatorgruppen nicht mehr.
    • Wenn Sie in der Vergangenheit die Version 1.4- 1.9 des Add-ons Istio installiert hatten, sehen Sie möglicherweise noch die Ressource istio operators.operators.coreos.com im Namensraum ibm-operators. Wenn Sie Istio mindestens auf die Version 1.10 aktualisiert haben, benötigen Sie diese Ressource nicht mehr.
    • Wenn Sie andere CRs finden, besteht die Möglichkeit, dass Sie sie nicht verwenden, da Sie in den vorherigen Schritten keine clusterserviceversions-Instanzen hatten. Überprüfen Sie jedoch jede CR mit Ihrem Clusteradministrator von Fall zu Fall, um zu ermitteln, ob sie noch verwendet werden.

    Die folgenden Schritte gehen davon aus, dass Sie die Überprüfung abgeschlossen haben und führen Sie durch das Löschen von OLM.

  7. Wenn Sie festgestellt haben, dass OLM nicht vom Add-on Istio oder anderen Operatoren verwendet wird, führen Sie die folgenden Befehle separat aus, um die Ressourcen von OLM zu löschen.

    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. Löschen Sie alle nicht verwendeten CRs und anschließend die von OLMinstallierten angepassten Ressourcendefinitionen (Custom Resource Definitions, CRD).

    kubectl delete catalogsources.operators.coreos.com NAME -n NAMESPACE
    
    kubectl delete crd catalogsources.operators.coreos.com
    
  9. Wiederholen Sie die vorherigen Schritte für jede der folgenden CRDs.

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