Warum schlägt die Installation des IBM Cloud Object Storage-Plug-ins fehl?

Virtuelle Private Cloud Klassische Infrastruktur

Die Installation des IBM Cloud Object Storage Plug-ins schlägt aufgrund von Konflikten mit Ressourcen aus früheren Installationen fehl.

Wenn Sie ibm-object-storage-plugin installieren, schlägt die Installation fehl.

Sie erhalten eine Fehlermeldung ähnlich dem folgenden Beispiel:

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

Während der Installation führt das IBM Cloud Object Storage Plug-in viele verschiedene Aufgaben aus, wie z. B. das Erstellen von Speicherklassen und Cluster-Rollenbindungen. Möglicherweise sind in Ihrem Cluster bereits einige Ressourcen aus früheren IBM Cloud Object Storage Plug-in-Installationen vorhanden und wurden nicht ordnungsgemäß entfernt, als Sie das Plug-in entfernt oder aktualisiert haben.

Problemlösung

Löschen Sie die Ressource, die in der Fehlermeldung angezeigt wird, und versuchen Sie die Installation erneut.

  1. Löschen Sie die Ressource, die in der Fehlernachricht angezeigt ist.

    oc delete <resource_kind> <resource_name>
    

    Beispiel für das Löschen einer Speicherklassenressource:

    oc delete storageclass <storage_class_name>
    
  2. Wiederholen Sie die Installation.

  3. Wenn Sie weiterhin den gleichen Fehler sehen, identifizieren Sie alle konfliktbehafteten Ressourcen von früheren Installationen und entfernen Sie sie.

  4. Rufen Sie eine Liste der Speicherklassen ab, die von ibmcloud-object-storage-plugin erstellt wurden.

    oc get sc --all-namespaces \
            -l app=ibmcloud-object-storage-plugin \
            -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'
    
  5. Rufen Sie eine Liste der Clusterrollenbindungen ab, die von ibmcloud-object-storage-plugin erstellt wurden.

    oc get ClusterRoleBinding --all-namespaces \
            -l app=ibmcloud-object-storage-plugin \
            -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'
    
  6. Rufen Sie eine Liste der Rollenbindungen ab, die von ibmcloud-object-storage-driver erstellt wurden.

    oc get RoleBinding --all-namespaces \
        -l app=ibmcloud-object-storage-driver \
        -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
    
  7. Rufen Sie eine Liste der Rollenbindungen ab, die von ibmcloud-object-storage-plugin erstellt wurden.

    oc get RoleBinding --all-namespaces \
            -l app=ibmcloud-object-storage-plugin \
            -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
    
  8. Rufen Sie eine Liste der Clusterrollen ab, die von ibmcloud-object-storage-plugin erstellt wurden.

    oc get ClusterRole --all-namespaces \
        -l app=ibmcloud-object-storage-plugin \
        -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'
    
  9. Rufen Sie eine Liste der Bereitstellungen ab, die von ibmcloud-object-storage-plugin erstellt wurden.

    oc get deployments --all-namespaces \
        -l app=ibmcloud-object-storage-plugin \
        -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
    
  10. Rufen Sie eine Liste der Dämongruppen ab, die von ibmcloud-object-storage-driver erstellt wurden.

oc get DaemonSets --all-namespaces \
    -l app=ibmcloud-object-storage-driver \
    -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
  1. Rufen Sie eine Liste der Servicekonten ab, die von ibmcloud-object-storage-driver erstellt wurden.
oc get ServiceAccount --all-namespaces \
    -l app=ibmcloud-object-storage-driver \
    -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
  1. Rufen Sie eine Liste der Servicekonten ab, die von ibmcloud-object-storage-plugin erstellt wurden.
oc get ServiceAccount --all-namespaces \
    -l app=ibmcloud-object-storage-plugin \
    -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\n"}{end}'
  1. Löschen Sie die kollidierenden Ressourcen, die in den vorangegangenen Schritten identifiziert wurden.
oc delete <resource_kind> <resource_name>
  1. Nach dem Löschen der in Konflikt stehenden Ressourcen wiederholen Sie die Installation.

  2. Überprüfen Sie, ob das Plug-in erfolgreich installiert wurde.

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