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.
-
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> -
Se você continuar vendo o mesmo erro, identifique e remova todos os recursos conflitantes de instalações anteriores.
-
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}' -
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}' -
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}' -
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}' -
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}' -
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}' -
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}'
- 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}'
- 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}'
- Exclua os recursos conflitantes que foram identificados nas etapas anteriores.
kubectl delete <resource_kind> <resource_name>
-
Depois de excluir os recursos conflitantes, tente novamente a instalação.
-
Verifique se o plug-in foi instalado com êxito.
kubectl get pods -n kube-system | grep object-storage