Warum schlägt die Installation des IBM Cloud Object Storage-Plug-ins fehl?
Virtuelle Private Cloud Klassische Infrastruktur
Die Installation des IBM Cloud Object Storage Plug-ins schlägt aufgrund von Konflikten mit Ressourcen aus früheren Installationen fehl.
Wenn Sie ibm-object-storage-plugin installieren, schlägt die Installation fehl.
Sie erhalten eine Fehlermeldung ähnlich dem folgenden Beispiel:
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
Während der Installation führt das IBM Cloud Object Storage Plug-in viele verschiedene Aufgaben aus, wie z. B. das Erstellen von Speicherklassen und Cluster-Rollenbindungen. Möglicherweise sind in Ihrem Cluster bereits einige Ressourcen aus früheren Installationen des IBM Cloud Object Storage Plug-ins vorhanden, die beim Entfernen oder Aktualisieren des Plug-ins nicht ordnungsgemäß entfernt wurden.
Problemlösung
Löschen Sie die Ressource, die in der Fehlermeldung angezeigt wird, und versuchen Sie die Installation erneut.
-
Löschen Sie die Ressource, die in der Fehlernachricht angezeigt ist.
kubectl delete <resource_kind> <resource_name>Beispiel für das Löschen einer Speicherklassenressource:
kubectl delete storageclass <storage_class_name> -
Wenn der gleiche Fehler weiterhin auftritt, identifizieren Sie alle konfliktbehafteten Ressourcen aus früheren Installationen und entfernen Sie sie.
-
Rufen Sie eine Liste der Speicherklassen ab, die von
ibmcloud-object-storage-pluginerstellt wurden.kubectl get sc --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
Rufen Sie eine Liste der Clusterrollenbindungen ab, die von
ibmcloud-object-storage-pluginerstellt wurden.kubectl get ClusterRoleBinding --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
Rufen Sie eine Liste der Rollenbindungen ab, die von
ibmcloud-object-storage-drivererstellt wurden.kubectl get RoleBinding --all-namespaces \ -l app=ibmcloud-object-storage-driver \ -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}' -
Rufen Sie eine Liste der Rollenbindungen ab, die von
ibmcloud-object-storage-pluginerstellt wurden.kubectl get RoleBinding --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}' -
Rufen Sie eine Liste der Clusterrollen ab, die von
ibmcloud-object-storage-pluginerstellt wurden.kubectl get ClusterRole --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
Rufen Sie eine Liste der Bereitstellungen ab, die von
ibmcloud-object-storage-pluginerstellt wurden.kubectl get deployments --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}' -
Rufen Sie eine Liste der Dämongruppen ab, die von
ibmcloud-object-storage-drivererstellt wurden.
kubectl get DaemonSets --all-namespaces \
-l app=ibmcloud-object-storage-driver \
-o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
- Rufen Sie eine Liste der Servicekonten ab, die von
ibmcloud-object-storage-drivererstellt wurden.
kubectl get ServiceAccount --all-namespaces \
-l app=ibmcloud-object-storage-driver \
-o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
- Rufen Sie eine Liste der Servicekonten ab, die von
ibmcloud-object-storage-pluginerstellt wurden.
kubectl get ServiceAccount --all-namespaces \
-l app=ibmcloud-object-storage-plugin \
-o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
- Löschen Sie die kollidierenden Ressourcen, die in den vorangegangenen Schritten identifiziert wurden.
kubectl delete <resource_kind> <resource_name>
-
Nach dem Löschen der in Konflikt stehenden Ressourcen wiederholen Sie die Installation.
-
Überprüfen Sie, ob das Plug-in erfolgreich installiert wurde.
kubectl get pods -n kube-system | grep object-storage