Pourquoi l'installation du plug-in IBM Cloud Object Storage échoue t'elle ?
Cloud privé virtuel Infrastructure classique
L'installation du plug-in IBM Cloud Object Storage échoue en raison de ressources conflictuelles provenant d'installations précédentes.
Lorsque vous installez le site ibm-object-storage-plugin, l'installation échoue.
Un message d'erreur similaire à l'exemple suivant s'affiche :
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
Lors de l'installation, le plug-in IBM Cloud Object Storage exécute de nombreuses tâches différentes, telles que la création de classes de stockage et de liaisons de rôles de cluster. Certaines ressources peuvent déjà exister dans votre cluster à partir d'installations précédentes du plug-in IBM Cloud Object Storage et n'ont pas été correctement supprimées lors de la suppression ou de la mise à jour du plug-in.
Résolution du problème
Supprimez la ressource affichée dans le message d'erreur et réessayez l'installation.
-
Supprimez la ressource qui s'affiche dans le message d'erreur.
kubectl delete <resource_kind> <resource_name>Exemple de suppression de la ressource d'une classe de stockage :
kubectl delete storageclass <storage_class_name> -
Si l'erreur persiste, identifiez et supprimez toutes les ressources conflictuelles provenant d'installations antérieures.
-
Obtenez une liste des classes de stockage qui sont créées par
ibmcloud-object-storage-plugin.kubectl get sc --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
Obtenez une liste des liaisons de rôle de cluster qui sont créées par
ibmcloud-object-storage-plugin.kubectl get ClusterRoleBinding --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
Obtenez une liste des liaisons de rôle qui sont créées par
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}' -
Obtenez une liste des liaisons de rôle qui sont créées par
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}' -
Obtenez une liste des rôles de cluster qui sont créés par
ibmcloud-object-storage-plugin.kubectl get ClusterRole --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
Obtenez une liste des déploiements qui sont créés par
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}' -
Obtenez une liste des ensembles de démons qui sont créées par
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}'
- Obtenez une liste des comptes de service qui sont créées par
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}'
- Obtenez une liste des comptes de service qui sont créées par
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}'
- Supprimer les ressources conflictuelles identifiées dans les étapes précédentes.
kubectl delete <resource_kind> <resource_name>
-
Après avoir supprimé les ressources en conflit, relancez l'installation.
-
Vérifiez que l'installation du plug-in s'est déroulée correctement.
kubectl get pods -n kube-system | grep object-storage