2.5. クラスターからの Operator の削除
クラスターから Operator を削除 (アンインストール) するには、サブスクライブされた namespace からこれを削除するためにサブスクリプションを削除できます。クリーンな状態にする必要がある場合は、Operator CSV およびデプロイメントを削除してから CatalogSourceConfig で Operator のエントリーを削除することもできます。以下では、Web コンソールまたはコマンドラインのいずれかを使用してクラスターから Operator を削除する方法について説明しています。
2.5.1. Web コンソールの使用によるクラスターからの Operator の削除
Web コンソールでインストールされた Operator を選択された namespace から削除するには、以下の手順を実行します。
手順
削除する Operator を選択します。これを実行するために使用できる 2 つのパスがあります。
Catalog
OperatorHub ページの使用: -
スクロールするか、またはキーワードを Filter by keyword box に入力し (この場合は
jaeger
)、必要な Operator を見つけてこれをクリックします。 - Uninstall をクリックします。
-
スクロールするか、またはキーワードを Filter by keyword box に入力し (この場合は
Catalog
Operator Management ページから: -
Project 一覧から Operator がインストールされている namespace を選択します。クラスター全体の Operator の場合、デフォルトは
openshift-operators
です。 Operator Subscriptions タブから、削除する必要のある Operator を見つけ (この例では
jaeger
)、 Options メニュー- Remove Subscription をクリックします。
-
Project 一覧から Operator がインストールされている namespace を選択します。クラスター全体の Operator の場合、デフォルトは
- Remove Subscription 画面でプロンプトが出されたら、インストールに関連するすべてのコンポーネントを削除する必要がある場合には、Also completely remove the jaeger Operator from the selected namespace チェックボックスをオプションで選択します。これにより CSV が削除され、次に Operator に関連付けられた Pod、Deployment、CRD および CR が削除されます。
- 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 を削除することを目標とします。
サブスクライブされた Operator (例:
jaeger
) の現行バージョンをcurrentCSV
フィールドで確認します。$ oc get subscription jaeger -n openshift-operators -o yaml | grep currentCSV currentCSV: jaeger-operator.v1.8.2
Operator の Subscription (例:
jaeger
) を削除します。$ oc delete subscription jaeger -n openshift-operators subscription.operators.coreos.com "jaeger" deleted
直前の手順で
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
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
以下の 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