IBM Cloud Docs
为什么安装 IBM Cloud Object Storage 插件失败?

为什么安装 IBM Cloud Object Storage 插件失败?

虚拟私有云 经典基础架构

安装 ibm-object-storage-plugin 时,安装失败,发生类似如下的错误:

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

在安装期间,IBM Cloud Object Storage 插件将执行许多不同的任务,例如创建存储类和集群角色绑定。

集群中可能已存在来自先前 IBM Cloud Object Storage 插件安装的某些资源,并且在除去或升级插件时未正确除去这些资源。

请删除错误消息中显示的资源,然后重试安装。

  1. 删除错误消息中显示的资源。

    oc delete <resource_kind> <resource_name>
    

    删除存储类资源的示例:

    oc delete storageclass <storage_class_name>
    
  2. 重试安装

  3. 如果继续看到相同的错误,请获取安装插件时安装的资源的列表。 获取由 ibmcloud-object-storage-plugin 创建的存储类的列表。

    oc get sc --all-namespaces \
            -l app=ibmcloud-object-storage-plugin \
            -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'
    
  4. 获取由 ibmcloud-object-storage-plugin 创建的集群角色绑定的列表。

    oc get ClusterRoleBinding --all-namespaces \
            -l app=ibmcloud-object-storage-plugin \
            -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'
    
  5. 获取由 ibmcloud-object-storage-driver 创建的角色绑定的列表。

    oc get RoleBinding --all-namespaces \
        -l app=ibmcloud-object-storage-driver \
        -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
    
  6. 获取由 ibmcloud-object-storage-plugin 创建的角色绑定的列表。

    oc get RoleBinding --all-namespaces \
            -l app=ibmcloud-object-storage-plugin \
            -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
    
  7. 获取由 ibmcloud-object-storage-plugin 创建的集群角色的列表。

    oc get ClusterRole --all-namespaces \
        -l app=ibmcloud-object-storage-plugin \
        -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'
    
  8. 获取由 ibmcloud-object-storage-plugin 创建的部署的列表。

    oc get deployments --all-namespaces \
        -l app=ibmcloud-object-storage-plugin \
        -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
    
  9. 获取由 ibmcloud-object-storage-driver 创建的守护程序集的列表。

    oc get DaemonSets --all-namespaces \
        -l app=ibmcloud-object-storage-driver \
        -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
    
  10. 获取由 ibmcloud-object-storage-driver 创建的服务帐户的列表。

    oc get ServiceAccount --all-namespaces \
        -l app=ibmcloud-object-storage-driver \
        -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
    
  11. 获取由 ibmcloud-object-storage-plugin 创建的服务帐户的列表。

    oc get ServiceAccount --all-namespaces \
        -l app=ibmcloud-object-storage-plugin \
        -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
    
  12. 删除有冲突的资源。

  13. 删除有冲突的资源后,请 重试安装