¿Por qué falla la instalación del plugin de IBM Cloud Object Storage?
Nube privada virtual Infraestructura clásica
La instalación del complemento IBM Cloud Object Storage falla debido a recursos conflictivos de instalaciones anteriores.
Al instalar ibm-object-storage-plugin, la instalación falla.
Aparece un mensaje de error similar al del ejemplo siguiente:
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 la instalación, el complemento IBM Cloud Object Storage ejecuta muchas tareas diferentes, como la creación de clases de almacenamiento y la vinculación de roles de clúster. Es posible que algunos recursos ya existan en su clúster desde instalaciones anteriores del complemento IBM Cloud Object Storage y no se hayan eliminado correctamente al eliminar o actualizar el complemento.
Resolución del problema
Elimine el recurso que aparece en el mensaje de error y vuelva a intentar la instalación.
-
Suprima el recurso que se muestra en el mensaje de error.
kubectl delete <resource_kind> <resource_name>Ejemplo de supresión de un recurso de clase de almacenamiento:
kubectl delete storageclass <storage_class_name> -
Si sigue apareciendo el mismo error, identifique y elimine todos los recursos conflictivos de instalaciones anteriores.
-
Obtenga una lista de las clases de almacenamiento creadas por
ibmcloud-object-storage-plugin.kubectl get sc --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
Obtenga una lista de los enlaces de rol de clúster creados por
ibmcloud-object-storage-plugin.kubectl get ClusterRoleBinding --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
Obtenga una lista de los enlaces de rol creados por
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}' -
Obtenga una lista de los enlaces de rol creados por
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}' -
Obtenga una lista de los roles de clúster creados por
ibmcloud-object-storage-plugin.kubectl get ClusterRole --all-namespaces \ -l app=ibmcloud-object-storage-plugin \ -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' -
Obtenga una lista de los despliegues creados por
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}' -
Obtenga una lista de los conjuntos de daemons creados por
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}'
- Obtenga una lista de las cuentas de servicio creadas por
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}'
- Obtenga una lista de las cuentas de servicio creadas por
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}'
- Elimine los recursos conflictivos identificados en los pasos anteriores.
kubectl delete <resource_kind> <resource_name>
-
Después de suprimir los recursos conflictivos, vuelva a intentar la instalación.
-
Compruebe que el plug-in se ha instalado correctamente.
kubectl get pods -n kube-system | grep object-storage