Come eliminare i componenti di Operator Lifecycle Manager ?

Operator Lifecycle Manager (OLM) non è installato o gestito su cluster che eseguono Kubernetes versione 1.23 o successive. Tuttavia, i cluster che sono stati aggiornati dalla versione 1.22 alla versione 1.23 o successiva potrebbero avere ancora i componenti OLM installati. Se non si utilizzano componenti OLM sul cluster, attenersi alla seguente procedura per rimuoverli.

Se si vuole continuare a usare i componenti di OLM nel proprio cluster, o se si vuole installare ed eseguire OLM su un cluster che esegue la versione 1.23 o successiva, è necessario gestire gli aggiornamenti autonomamente. Consultare la documentazione open source di OLM.

  1. Confermare che l'operatore OLM è installato.

    kubectl get deploy -n ibm-system olm-operator
    

    Output di esempio

    NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
    olm-operator                           1/1     1            1           6mo
    
  2. Verificare se si stanno utilizzando le versioni da 1.4 a 1.9 del componente aggiuntivo Istio. Istio le versioni da 1.4 a 1.9 non sono supportate e si utilizza OLM. Se si utilizzano queste versioni, passare a una versione supportata del componente aggiuntivo Istio che non utilizza l'operatore OLM. Dopo aver eseguito l'aggiornamento a una versione supportata di Istio, è possibile eliminare l'operatore OLM.

    ibmcloud ks cluster addons -c CLUSTER
    

    In questo esempio di output, OLM è ancora utilizzato dalla versione aggiuntiva Istio 1.5. Aggiornare il componente aggiuntivo, quindi continuare con questi passi.

    NAME            Version     Health State   Health Status
    istio           1.5         normal         Addon Ready
    
  3. Verificare se sono presenti operatori in uso che sono stati distribuiti tramite OLM elencando le versioni del servizio cluster.

    kubectl get clusterserviceversions -A
    

    Output di esempio di un operatore distribuito tramite OLM.

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

    Se nell'output è presente clusterserviceversions, si stanno ancora utilizzando operatori gestiti tramite OLM. Potete continuare a utilizzare il sito OLM, ma siete responsabili della gestione degli aggiornamenti. I passi seguenti presuppongono che non si stia più utilizzando OLM e forniscono istruzioni per la pulizia; non continuare se si sta ancora utilizzando OLM.

  4. Se non vi sono istanze clusterserviceversions nell'output del passo 3, non si utilizza OLM. Ora è possibile ottenere un elenco delle risorse create da OLM e rimuoverle.

  5. Per ogni CRD nel seguente elenco, ottieni le risorse personalizzate (CR) in tutti gli spazi dei nomi.

    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. Se si trovano CR, determinare se tali risorse sono ancora necessarie.

    • È ancora possibile visualizzare i gruppi di operatori olm-operators e ibm-operators che sono stati distribuiti da OLM. Questi gruppi di operatori facevano parte dell'installazione di OLM. Poiché non hai alcuna istanza cluseterserviceversions nei passi precedenti, non stai più utilizzando questi gruppi di operatori.
    • Se in passato è stata installata la versione 1.4- 1.9 del componente aggiuntivo Istio, si potrebbe ancora vedere la risorsa istio operators.operators.coreos.com nello spazio dei nomi ibm-operators. Se avete aggiornato Istio almeno alla versione 1.10, non avete più bisogno di questa risorsa.
    • Se trovi altre CR, è probabile che non le stai utilizzando perché non disponi di alcuna istanza clusterserviceversions nei passaggi precedenti. Tuttavia, esamina ogni CR con il tuo amministratore del cluster caso per caso per determinare se sono ancora in uso.

    I passi seguenti presuppongono che sia stata completata la revisione e guidano l'utente nell'eliminazione di OLM.

  7. Se si è stabilito che OLM non è utilizzato dal componente aggiuntivo Istio o da altri operatori, eseguire separatamente i seguenti comandi per eliminare le risorse di 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. Eliminare le CR inutilizzate, quindi eliminare le CRD (custom resource definitions) installate da OLM.

    kubectl delete catalogsources.operators.coreos.com NAME -n NAMESPACE
    
    kubectl delete crd catalogsources.operators.coreos.com
    
  9. Ripetere i passi precedenti per ciascuno dei seguenti CRD.

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