¿Cómo puedo limpiar los recursos de EKS Anywhere sin eksctl cuando se produce un error durante la creación de un clúster?

4 minutos de lectura
0

Se ha producido un error durante el proceso de creación de mi clúster de Amazon Elastic Kubernetes Service (Amazon EKS) Anywhere. Quiero limpiar manualmente mis recursos porque no puedo usar eksctl.

Breve descripción

Al crear un clúster de EKS Anywhere, el proceso también crea un clúster de arranque en el equipo administrador. Este clúster de arranque es un clúster de KinD (Kubernetes in Docker) que facilita la creación del clúster de EKS Anywhere. Para limpiar el clúster de KinD, detenga los contenedores de KinD y elimine sus imágenes.

Para los demás proveedores, deberá realizar pasos adicionales con relación al plano de control y los nodos en las máquinas virtuales.

Resolución

Limpieza de los recursos del equipo administrador para Docker

Para eliminar todos los recursos no deseados de la creación fallida del clúster, utilice el siguiente script para todos los casos de uso.

Dado que el comando kind delete cluster requiere que se instale KinD, este script no lo utiliza. En su lugar, EKS Anywhere utiliza binarios de KinD de contenedores temporales para configurar clústeres:

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

Nota: Sustituya YOUR_CLUSTER_NAME por el nombre de su clúster de EKS Anywhere.

Limpie los recursos de la máquina virtual para Bare Metal, Nutanix, CloudStack y vSphere

Si se crea alguna máquina virtual durante el proceso de creación y se produce un error durante la creación, deberá limpiar las máquinas virtuales manualmente.

Si usa un clúster de administración independiente para crear y administrar clústeres de EKS Anywhere, consulte la siguiente sección de Clústeres con clúster de administración. Si su clúster de EKS Anywhere no admite un clúster de administración independiente, consulte la siguiente sección Clústeres sin clúster de administración.

Clústeres sin clúster de administración

En el caso de los clústeres sin un clúster de administración independiente, apague todos los nodos de trabajo, las VM de etcd y el servidor de API, y elimínelos.

**Nota:**El nombre del clúster se suele incluir como prefijo en los nombres de las máquinas virtuales asociadas a los clústeres de Nutanix, CloudStack y vSphere.

En el caso de los clústeres de Bare Metal, apague los equipos de destino y elimínelos.

Clústeres con clúster de administración

Si utiliza un clúster de administración, otro clúster independiente supervisará el estado del clúster de carga de trabajo. Si se apaga y se detiene un equipo que forma parte del clúster de carga de trabajo, el clúster de administración detectará un problema con el estado. A continuación, el clúster pondrá en marcha una nueva máquina virtual para que el clúster de carga de trabajo vuelva al estado deseado.

Por lo tanto, para limpiar los clústeres con clústeres de administración independientes, elimine los recursos personalizados (CRD) que representen el clúster de carga de trabajo. Esto eliminará todas las máquinas virtuales del clúster de carga de trabajo.

Nota: En los siguientes comandos, sustituya WORKLOAD_CLUSTER_NAME por el nombre de su clúster de carga de trabajo. Sustituya MANAGEMENT_CLUSTER_FOLDER por la carpeta de administración de EKS Anywhere. Sustituya MANAGEMENT_CLUSTER_KUBECONFIG_FILE por el archivo kubeconfig de su archivo kubeconfig del clúster de administración. El archivo kubeconfig se encuentra en MANAGEMENT_CLUSTER_FOLDER.

Elimine el recurso API del clúster de carga de trabajo:

kubectl delete clusters.cluster.x-k8s.io -n eksa-system WORKLOAD_CLUSTER_NAME --kubeconfig MANAGEMENT_CLUSTER_FOLDER/MANAGEMENT_CLUSTER_KUBECONFIG_FILE

Si los recursos existen, elimine el recurso clusters.anywhere.eks.amazonaws.com del clúster:

kubectl delete clusters.anywhere.eks.amazonaws.com WORKLOAD_CLUSTER_NAME --kubeconfig MANAGEMENT_CLUSTER_FOLDER/MANAGEMENT_CLUSTER_KUBECONFIG_FILE

Nota: Si se produce un error durante la creación del clúster antes de aprovisionar el recurso clusters.anywhere.eks.amazonaws.com, se mostrará este mensaje de error:

«Error del servidor (no encontrado): No se ha encontrado clusters.anywhere.eks.amazonaws.com "WORKLOAD_CLUSTER_NAME"»

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año