IBM Cloud Object Storage プラグインのインストールが失敗するのはなぜですか?
仮想プライベートクラウド クラシック・インフラストラクチャー
以前のインストールでリソースが競合したため、 IBM Cloud Object Storage プラグインのインストールに失敗しました。
ibm-object-storage-plugin をインストールすると、インストールに失敗する。
次の例のようなエラーメッセージが表示されます:
Error: rendered manifest contains a resource that already exists. Unable to continue with install. Existing resource conflict: namespace: , name: ibmc-s3fs-smart-cross-region, existing_kind: storageClass, new_kind: storage.k8s.io/v1, Kind=StorageClass
Error: plugin "ibmc" exited with error
インストール中、 IBM Cloud Object Storage プラグインは、ストレージクラスやクラスタロールバインディングの作成など、さまざまなタスクを実行します。 一部のリソースは、 IBM Cloud Object Storage プラグインを以前にインストールしたときにクラスタに既に存在しており、プラグインを削除またはアップグレードしたときに適切に削除されなかった可能性があります。
問題の解決
エラーメッセージに表示されているリソースを削除し、インストールを再試行してください。
-
エラー・メッセージに表示されているリソースを削除します。
kubectl delete <resource_kind> <resource_name>ストレージ・クラスのリソースを削除する例:
kubectl delete storageclass <storage_class_name> -
インストールを再試行します。
-
同じエラーが表示され続ける場合は、以前のインストールで競合したリソースをすべて特定し、削除してください。
-
ibmcloud-object-storage-pluginで作成されたストレージ・クラスのリストを取得します。kubectl get sc --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
ibmcloud-object-storage-pluginで作成されたクラスター役割バインディングのリストを取得します。kubectl get ClusterRoleBinding --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
ibmcloud-object-storage-driverで作成された役割バインディングのリストを取得します。kubectl get RoleBinding --all-namespaces \ -l app=ibmcloud-object-storage-driver \ -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}' -
ibmcloud-object-storage-pluginで作成された役割バインディングのリストを取得します。kubectl get RoleBinding --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}' -
ibmcloud-object-storage-pluginで作成されたクラスター役割のリストを取得します。kubectl get ClusterRole --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
ibmcloud-object-storage-pluginで作成されたデプロイメントのリストを取得します。kubectl get deployments --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}' -
ibmcloud-object-storage-driverで作成されたデーモン・セットのリストを取得します。
kubectl get DaemonSets --all-namespaces \
-l app=ibmcloud-object-storage-driver \
-o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
ibmcloud-object-storage-driverで作成されたサービス・アカウントのリストを取得します。
kubectl get ServiceAccount --all-namespaces \
-l app=ibmcloud-object-storage-driver \
-o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
ibmcloud-object-storage-pluginで作成されたサービス・アカウントのリストを取得します。
kubectl get ServiceAccount --all-namespaces \
-l app=ibmcloud-object-storage-plugin \
-o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
- 前のステップで特定された競合リソースを削除する。
kubectl delete <resource_kind> <resource_name>
-
競合しているリソースを削除したら、インストールを再試行します。
-
プラグインが正常にインストールされていることを確認する。
kubectl get pods -n kube-system | grep object-storage