Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

2.5. クラスターからの Operator の削除

クラスターから Operator を削除 (アンインストール) するには、サブスクライブされた namespace からこれを削除するためにサブスクリプションを削除できます。クリーンな状態にする必要がある場合は、Operator CSV およびデプロイメントを削除してから CatalogSourceConfig で Operator のエントリーを削除することもできます。以下では、Web コンソールまたはコマンドラインのいずれかを使用してクラスターから Operator を削除する方法について説明しています。

2.5.1. Web コンソールの使用によるクラスターからの Operator の削除

Web コンソールでインストールされた Operator を選択された namespace から削除するには、以下の手順を実行します。

手順

  1. 削除する Operator を選択します。これを実行するために使用できる 2 つのパスがあります。

    • CatalogOperatorHub ページの使用:

      1. スクロールするか、またはキーワードを Filter by keyword box に入力し (この場合は jaeger)、必要な Operator を見つけてこれをクリックします。
      2. Uninstall をクリックします。
    • CatalogOperator Management ページから:

      1. Project 一覧から Operator がインストールされている namespace を選択します。クラスター全体の Operator の場合、デフォルトは openshift-operators です。
      2. Operator Subscriptions タブから、削除する必要のある Operator を見つけ (この例では jaeger)、 Options メニュー kebab をエントリーの末尾でクリックします。

        olm operator delete
      3. Remove Subscription をクリックします。
  2. Remove Subscription 画面でプロンプトが出されたら、インストールに関連するすべてのコンポーネントを削除する必要がある場合には、Also completely remove the jaeger Operator from the selected namespace チェックボックスをオプションで選択します。これにより CSV が削除され、次に Operator に関連付けられた Pod、Deployment、CRD および CR が削除されます。
  3. Remove を選択します。この Operator は実行を停止し、更新を受信しなくなります。
注記

Operator がインストールされなくなるか、更新を受信しなくなっても、その Operator は依然として Operator Catalogs 一覧に表示され、再度サブスクライブできる状態になります。Operator をこの一覧から削除するには、コマンドラインで CatalogSourceConfig の Operator のエントリーを削除できます (「CLI の使用によるクラスターからの Operator の削除」の最後の手順を参照)。

2.5.2. CLI の使用によるクラスターからの Operator の削除

OpenShift Container Platform Web コンソールを使用する代わりに、CLI を使用して Operator をクラスターから削除できます。これは、Subscription および ClusterServiceVersion を targetNamespace から削除し、 CatalogSourceConfig を編集して Operator のパッケージ名を削除することで実行できます。

前提条件

  • cluster-admin パーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできること。
  • oc コマンドをローカルシステムにインストールすること。

手順

この例では、2 つの Operator (Jaeger および Descheduler) が openshift-operators namespace にインストールされています。ここでは、Descheduler を削除させずに Jaeger を削除することを目標とします。

  1. サブスクライブされた Operator (例: jaeger) の現行バージョンを currentCSV フィールドで確認します。

    $ oc get subscription jaeger -n openshift-operators -o yaml | grep currentCSV
      currentCSV: jaeger-operator.v1.8.2
  2. Operator の Subscription (例: jaeger) を削除します。

    $ oc delete subscription jaeger -n openshift-operators
    subscription.operators.coreos.com "jaeger" deleted
  3. 直前の手順で currentCSV 値を使用し、ターゲット namespace の Operator の CSV を削除します。

    $ oc delete clusterserviceversion jaeger-operator.v1.8.2 -n openshift-operators
    clusterserviceversion.operators.coreos.com "jaeger-operator.v1.8.2" deleted
  4. CatalogSourceConfig リソースの内容を表示し、spec セクションでパッケージの一覧を確認します。

    $ oc get catalogsourceconfig -n openshift-marketplace \
        installed-community-openshift-operators -o yaml

    たとえば、spec セクションは以下のように表示されるかもしれません。

    CatalogSourceConfig のサンプル

    spec:
      csDisplayName: Community Operators
      csPublisher: Community
      packages: jaeger,descheduler
      targetNamespace: openshift-operators

  5. 以下の 2 つの方法のいずれかで Operator を CatalogSourceConfig から削除します。

    • 複数の Operator がある場合、CatalogSourceConfig リソースを編集し、Operator のパッケージを削除します。

      $ oc edit catalogsourceconfig -n openshift-marketplace \
          installed-community-openshift-operators

      以下のようにパッケージを packages 行から削除します。

      CatalogSourceConfig で変更されたパッケージの例

        packages: descheduler

      変更を保存すると、marketplace-operator が CatalogSourceConfig を調整します。

    • CatalogSourceConfig に 1 つの Operator のみがある場合、以下のように CatalogSourceConfig 全体を削除してこれを削除することができます。

      $ oc delete catalogsourceconfig -n openshift-marketplace \
          installed-community-openshift-operators