Como limpar os recursos do EKS Anywhere sem o eksctl quando a criação do cluster falha?
Meu cluster do Amazon Elastic Kubernetes Service (Amazon EKS) Anywhere falhou no processo de criação. Quero limpar manualmente meus recursos porque não posso usar o eksctl.
Breve descrição
Quando você cria um cluster do EKS Anywhere, o processo também cria um cluster de bootstrap na máquina administrativa. Esse cluster de inicialização é um cluster Kubernetes no Docker (KinD) que facilita a criação do cluster do EKS Anywhere. Para limpar o cluster do KinD, pare os contêineres do KinD e remova as imagens do contêiner do KinD.
Para outros provedores, você deve concluir etapas adicionais nas máquinas virtuais (VMs) do plano de controle e dos nós.
Resolução
Limpar os recursos na máquina administrativa para o Docker
Para limpar todos os recursos indesejados da criação de cluster com falha, use o seguinte script para todos os casos de uso.
Como o comando kind delete cluster requer a instalação do KinD, esse script não usa o comando. Em vez disso, o EKS Anywhere usa binários KinD de contêineres temporários para configurar clusters:
EKSA_CLUSTER_NAME="YOUR_CLUSTER_NAME" # Clean up KIND Cluster Containers kind_container_ids=$(docker ps -a | grep "${EKSA_CLUSTER_NAME}" | awk -F ' ' '{print $1}') for container_id in $kind_container_ids; do echo "deleting container with id ${container_id}"; docker rm -f ${container_id}; done # Clean up EKS-A tools Containers tools_container_ids=$(docker ps -a | grep "public.ecr.aws/eks-anywhere/cli-tools" | awk -F ' ' '{print $1}') for container_id in $tools_container_ids; do echo "deleting container with id ${container_id}"; docker rm -f ${container_id}; done # Delete All EKS-Anywhere Images image_ids=$(docker image ls | grep "public.ecr.aws/eks-anywhere/" | awk -F ' ' '{print $3}') for image_id in $image_ids; do echo "deleting image with id ${image_id}"; docker image rm ${image_id}; done # Delete Auto-generated Cluster Folder rm $EKSA_CLUSTER_NAME -rf
Observação: substitua YOUR_CLUSTER_NAME pelo nome do cluster do EKS Anywhere.
Limpar recursos na VM para Bare Metal, Nutanix, CloudStack e vSphere
Se alguma VM for criada durante o processo de criação e a criação falhar, você deverá limpar manualmente as VMs.
Se você usar um cluster de gerenciamento separado para criar e gerenciar clusters do EKS Anywhere, consulte a seguinte seção Clusters com um cluster de gerenciamento. Se o cluster do EKS Anywhere não for compatível com um cluster de gerenciamento separado, consulte a seguinte seção Clusters sem um cluster de gerenciamento.
Clusters sem um cluster de gerenciamento
Para clusters sem um cluster de gerenciamento separado, desligue e exclua todos os nós de processamento, as VMs etcd e o servidor da API.
Observação: o nome do cluster é comumente incluído como um prefixo nos nomes das VMs associadas aos clusters do Nutanix, CloudStack e vSphere.
Para clusters bare metal, desligue e exclua as máquinas de destino.
Clusters com um cluster de gerenciamento
Quando você usa um cluster de gerenciamento, um cluster separado monitora o estado do seu cluster de carga de trabalho. Se uma máquina que faz parte do cluster de workload for desligada e encerrada, o cluster de gerenciamento detectará um problema de integridade. Em seguida, o cluster gira uma nova máquina virtual para trazer o cluster de workload de volta ao estado desejado.
Portanto, para limpar os clusters com clusters de gerenciamento separados, exclua os recursos personalizados (CRDs) que representam o cluster da workload. Isso exclui todas as VMs do cluster da workload.
Observação: nos comandos a seguir, substitua WORKLOAD_CLUSTER_NAME pelo nome do seu cluster de workload. Substitua MANAGEMENT_CLUSTER_FOLDER por sua pasta de gerenciamento do EKS Anywhere. Substitua MANAGEMENT_CLUSTER_KUBECONFIG_FILE pelo arquivo kubeconfig do seu cluster de gerenciamento. O arquivo kubeconfig está na MANAGEMENT_CLUSTER_FOLDER.
Exclua o recurso da API de cluster do cluster da workload:
kubectl delete clusters.cluster.x-k8s.io -n eksa-system WORKLOAD_CLUSTER_NAME --kubeconfig MANAGEMENT_CLUSTER_FOLDER/MANAGEMENT_CLUSTER_KUBECONFIG_FILE
Se os recursos existirem, exclua o recurso clusters.anywhere.eks.amazonaws.com do cluster:
kubectl delete clusters.anywhere.eks.amazonaws.com WORKLOAD_CLUSTER_NAME --kubeconfig MANAGEMENT_CLUSTER_FOLDER/MANAGEMENT_CLUSTER_KUBECONFIG_FILE
Observação: se a criação do cluster falhar antes do provisionamento do recurso clusters.anywhere.eks.amazonaws.com, você receberá o seguinte erro:
"Erro do servidor (NotFound): clusters.anywhere.eks.amazonaws.com "WORKLOAD_CLUSTER_NAME" não encontrado"
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos