Perché l'installazione del plug-in IBM Cloud Object Storage non riesce?
Virtual Private Cloud Infrastruttura classica
L'installazione del plug-in IBM Cloud Object Storage non riesce a causa di risorse in conflitto con installazioni precedenti.
Quando si installa il sito ibm-object-storage-plugin, l'installazione non riesce.
Viene visualizzato un messaggio di errore simile al seguente esempio:
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
Durante l'installazione, il plug-in IBM Cloud Object Storage esegue diverse operazioni, come la creazione di classi di storage e di binding di ruoli del cluster. Alcune risorse potrebbero essere già presenti nel cluster da precedenti installazioni del plug-in IBM Cloud Object Storage e non sono state rimosse correttamente durante la rimozione o l'aggiornamento del plug-in.
Risolvere il problema
Eliminare la risorsa visualizzata nel messaggio di errore e riprovare l'installazione.
-
Elimina la risorsa visualizzata nel messaggio di errore.
kubectl delete <resource_kind> <resource_name>Esempio per l'eliminazione di una risorsa della classe di archiviazione:
kubectl delete storageclass <storage_class_name> -
Se si continua a visualizzare lo stesso errore, identificare e rimuovere tutte le risorse in conflitto delle installazioni precedenti.
-
Ottieni un elenco di classi di archiviazione create da
ibmcloud-object-storage-plugin.kubectl get sc --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
Ottieni un elenco di bind del ruolo cluster creati da
ibmcloud-object-storage-plugin.kubectl get ClusterRoleBinding --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
Ottieni un elenco di bind del ruolo creati da
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}' -
Ottieni un elenco di bind del ruolo creati da
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}' -
Ottieni un elenco di ruoli cluster creati da
ibmcloud-object-storage-plugin.kubectl get ClusterRole --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
Ottieni un elenco di distribuzioni create da
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}' -
Ottieni un elenco di serie di daemon create da
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}'
- Ottieni un elenco di account di servizio creati da
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}'
- Ottieni un elenco di account di servizio creati da
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}'
- Eliminare le risorse in conflitto identificate nei passaggi precedenti.
kubectl delete <resource_kind> <resource_name>
-
Dopo aver eliminato le risorse in conflitto, riprova ad eseguire l'installazione.
-
Verificare che il plug-in sia stato installato correttamente.
kubectl get pods -n kube-system | grep object-storage