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.4 から 1.9 を使用しているか確認してください。 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. OLM が Istio アドオンや追加オペレータによって使用されていないと判断した場合は、別途以下のコマンドを実行し、 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