¿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.

  1. 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>
    
  2. Vuelva a intentar la instalación.

  3. Si sigue apareciendo el mismo error, identifique y elimine todos los recursos conflictivos de instalaciones anteriores.

  4. 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}'
    
  5. 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}'
    
  6. 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}'
    
  7. 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}'
    
  8. 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}'
    
  9. 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}'
    
  10. 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}'
  1. 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}'
  1. 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}'
  1. Elimine los recursos conflictivos identificados en los pasos anteriores.
kubectl delete <resource_kind> <resource_name>
  1. Después de suprimir los recursos conflictivos, vuelva a intentar la instalación.

  2. Compruebe que el plug-in se ha instalado correctamente.

kubectl get pods -n kube-system | grep object-storage