Operator Lifecycle Manager 구성요소를 삭제하는 방법

Operator Lifecycle Manager (OLM) 는 Kubernetes 버전 1.23 이상을 실행하는 클러스터에 설치되거나 관리되지 않습니다. 그러나 버전 1.22 에서 버전 1.23 이상으로 업그레이드된 클러스터에는 여전히 OLM 컴포넌트가 설치되어 있을 수 있습니다. 클러스터에서 OLM 컴포넌트를 사용하지 않는 경우 다음 단계에 따라 제거하십시오.

클러스터에서 OLM 구성 요소를 계속 사용하거나 버전 1.23 이상을 실행하는 클러스터에 OLM 을 설치 및 실행하려면 업데이트를 직접 관리해야 합니다. 오픈 소스 OLM 문서를 참조하세요.

  1. OLM 운영자가 설치되어 있는지 확인하십시오.

    kubectl get deploy -n ibm-system olm-operator
    

    출력 예

    NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
    olm-operator                           1/1     1            1           6mo
    
  2. Istio 애드온의 1.9 버전을 통해 1.4 버전을 사용 중인지 확인하세요. Istio 버전 1.4 ~ 1.9 은 지원되지 않으며 OLM 을 사용하십시오. 이러한 버전을 사용하는 경우 OLM 연산자를 사용하지 않는 Istio 애드온의 지원되는 버전으로 업그레이드하세요. 지원되는 Istio 버전으로 업그레이드한 후 OLM 연산자를 삭제할 수 있습니다.

    ibmcloud ks cluster addons -c CLUSTER
    

    이 예제 출력에서 OLM 는 Istio 애드온 버전 1.5 에서 계속 사용됩니다. 추가 기능을 업그레이드한 후 다음 단계를 계속하십시오.

    NAME            Version     Health State   Health Status
    istio           1.5         normal         Addon Ready
    
  3. 클러스터 서비스 버전을 나열하여 OLM 을 통해 배치된 사용 중인 연산자가 있는지 확인하십시오.

    kubectl get clusterserviceversions -A
    

    OLM을 통해 배치된 연산자의 예제 출력입니다.

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

    출력에 clusterserviceversions 이 있으면 OLM 을 통해 관리되는 연산자를 계속 사용하고 있는 것입니다. OLM 을 계속 사용할 수 있지만 업데이트 관리는 회원님의 책임입니다. 다음 단계는 OLM 을 더 이상 사용하지 않는다고 가정하고 정리 지침을 제공하며, 아직 OLM 을 사용 중인 경우 계속 진행하지 마십시오.

  4. 3단계의출력에 clusterserviceversions 인스턴스가 없는 경우 OLM을 사용하지 않습니다. 이제 OLM 에서 작성한 자원 목록을 가져와서 제거할 수 있습니다.

  5. 다음 목록의 각 CRD에 대해 모든 네임스페이스에서 사용자 정의 자원 (CR) 을 가져오십시오.

    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. CR을 찾은 경우 이러한 자원이 여전히 필요한지 여부를 판별하십시오.

    • OLM에 의해 배치된 olm-operators 및 ibm-operators 운영자 그룹이 계속 표시될 수 있습니다. 이러한 운영자 그룹은 OLM설치의 일부였습니다. 이전 단계에 cluseterserviceversions 인스턴스가 없으므로 더 이상 이러한 연산자 그룹을 사용하지 않습니다.
    • 이전에 Istio 애드온의 버전 1.4- 1.9 을 설치한 경우 ibm-operators 네임스페이스에 istio operators.operators.coreos.com 리소스가 계속 표시될 수 있습니다. Istio 을 버전 1.10 이상으로 업그레이드한 경우 이 리소스가 더 이상 필요하지 않습니다.
    • 다른 CR을 찾은 경우 이전 단계에서 clusterserviceversions 인스턴스가 없으므로 이를 사용하지 않을 수 있습니다. 그러나 케이스별로 클러스터 관리자와 함께 각 CR을 검토하여 여전히 사용 중인지 여부를 판별하십시오.

    다음 단계에서는 검토를 완료했다고 가정하고 OLM 을 삭제하는 방법을 안내합니다.

  7. Istio 애드온 또는 추가 운영자가 OLM 를 사용하지 않는다고 판단한 경우 다음 명령을 별도로 실행하여 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. 사용하지 않는 CR을 삭제한 후 OLM으로 설치된 사용자 정의 자원 정의 (CRD) 를 삭제하십시오.

    kubectl delete catalogsources.operators.coreos.com NAME -n NAMESPACE
    
    kubectl delete crd catalogsources.operators.coreos.com
    
  9. 다음 각 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