Por que a instalação do plug-in IBM Cloud Object Storage falha?

Nuvem privada virtual Infraestrutura clássica

A instalação do plug-in IBM Cloud Object Storage falha devido a recursos conflitantes de instalações anteriores.

Quando você instala o ibm-object-storage-plugin, a instalação falha.

Você verá uma mensagem de erro semelhante ao exemplo a seguir:

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 a instalação, o plug-in IBM Cloud Object Storage executa muitas tarefas diferentes, como a criação de classes de armazenamento e associações de funções de cluster. Alguns recursos podem já existir em seu cluster de instalações anteriores do plug-in IBM Cloud Object Storage e não foram removidos corretamente quando você removeu ou atualizou o plug-in.

Resolvendo o problema

Exclua o recurso que é exibido na mensagem de erro e tente novamente a instalação.

  1. Exclua o recurso que é exibido na mensagem de erro.

    kubectl delete <resource_kind> <resource_name>
    

    Exemplo para exclusão de um recurso de classe de armazenamento:

    kubectl delete storageclass <storage_class_name>
    
  2. Tente novamente a instalação.

  3. Se você continuar vendo o mesmo erro, identifique e remova todos os recursos conflitantes de instalações anteriores.

  4. Obtenha uma lista de classes de armazenamento que são criadas pelo ibmcloud-object-storage-plugin.

    kubectl get sc --all-namespaces \
            -l app=ibmcloud-object-storage-plugin \
            -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'
    
  5. Obtenha uma lista de ligações de funções de cluster que são criadas pelo ibmcloud-object-storage-plugin.

    kubectl get ClusterRoleBinding --all-namespaces \
            -l app=ibmcloud-object-storage-plugin \
            -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'
    
  6. Obtenha uma lista de ligações de funções que são criadas pelo 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. Obtenha uma lista de ligações de funções que são criadas pelo 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. Obtenha uma lista de funções de cluster que são criadas pelo ibmcloud-object-storage-plugin.

    kubectl get ClusterRole --all-namespaces \
        -l app=ibmcloud-object-storage-plugin \
        -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'
    
  9. Obtenha uma lista de implementações que são criadas pelo 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. Obtenha uma lista dos conjuntos de daemon que são criados pelo 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. Obtenha uma lista das contas de serviço que são criadas pelo 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. Obtenha uma lista das contas de serviço que são criadas pelo 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. Exclua os recursos conflitantes que foram identificados nas etapas anteriores.
kubectl delete <resource_kind> <resource_name>
  1. Depois de excluir os recursos conflitantes, tente novamente a instalação.

  2. Verifique se o plug-in foi instalado com êxito.

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