7.6.8. アンインストール失敗後の Operator の再インストール
同じ Operator の再インストールを試行する前に、Operator を正常かつ完全にアンインストールする必要があります。Operator を適切かつ完全にアンインストールできていない場合、プロジェクトや namespace などのリソースが "Terminating" ステータスでスタックし、"error resolving resource" メッセージが表示されます。以下に例を示します。
Project リソースの説明例
...
message: 'Failed to delete all resource types, 1 remaining: Internal error occurred:
error resolving resource'
...
これらのタイプの問題は、Operator の正常な再インストールを妨げる可能性があります。
namespace を強制的に削除しても、"Terminating" 状態の問題が解決される可能性は低く、クラスターの動作が不安定または予測不能になる可能性があるため、namespace の削除を妨げている可能性のある関連リソースの特定に注力することが推奨されます。詳細は、Red Hat Knowledgebase Solution #4165791 を参照し、特に注意と警告に注目してください。
次の手順では、以前インストールされた Operator からの既存カスタムリソース定義 (CRD) が原因で関連する namespace が正常に削除されないために Operator を再インストールできない場合のトラブルシューティングを示します。
手順
"Terminating" 状態のままになっている Operator に関連する namespace があるかどうかを確認します。
$ oc get namespaces出力例
operator-ns-1 Terminatingアンインストールの失敗後も Operator に関連する CRD があるか確認します。
$ oc get crds注記CRD はグローバルクラスター定義です。CRD に関連する実際のカスタムリソース (CR) インスタンスは、他の namespace にあるか、グローバルクラスターインスタンスである可能性があります。
Operator によって提供または管理されている CRD があり、その CRD をアンインストール後に削除する必要がある場合は、CRD を削除します。
$ oc delete crd <crd_name>アンインストールした後も Operator に関連する CR インスタンスが残っているか確認し、残っている場合は CR を削除します。
アンインストール後は、検索する CR のタイプの判断が困難になり、Operator が管理する CRD を把握している必要がある場合もあります。たとえば、
EtcdClusterCRD を提供する etcd Operator のアンインストールをトラブルシューティングする場合、namespace で残りのEtcdClusterCR を検索できます。$ oc get EtcdCluster -n <namespace_name>もしくは、すべての namespace で検索できます。
$ oc get EtcdCluster --all-namespaces削除する必要のある CR が残っている場合は、インスタンスを削除します。
$ oc delete <cr_name> <cr_instance_name> -n <namespace_name>
namespace の削除が正常に解決されたことを確認します。
$ oc get namespace <namespace_name>重要namespace やその他の Operator リソースが正常にアンインストールされていない場合は、Red Hat サポートにお問い合わせください。
- Web コンソールのソフトウェアカタログを使用して Operator を再インストールします。
検証
Operator が正常に再インストールされていることを確認します。
$ oc get sub,csv,installplan -n <namespace>