Come faccio a ripulire le risorse di EKS Anywhere senza eksctl quando la creazione del cluster fallisce?
Il mio cluster Amazon Elastic Kubernetes Service (Amazon EKS) Anywhere non è riuscito nel processo di creazione. Voglio pulire manualmente le mie risorse perché non posso usare eksctl.
Breve descrizione
Quando si crea un cluster EKS Anywhere, il processo crea anche un cluster bootstrap sul computer amministrativo. Questo cluster bootstrap è un cluster Kubernetes in Docker (KIND) e facilita la creazione del cluster EKS Anywhere. Per ripulire questo cluster KinD, ferma i container KinD e rimuovi le immagini dei container KinD.
Per gli altri provider, è necessario completare passaggi aggiuntivi sulle macchine virtuali (VM) per il piano di controllo (control plane) e i nodi.
Soluzione
Pulisci le risorse sul computer amministrativo per Docker
Per eliminare tutte le risorse indesiderate dalla creazione fallita del cluster, utilizzate il seguente script per tutti i casi d'uso.
Poiché il comando kind delete cluster richiede l'installazione di KinD, questo script non utilizza il comando. Invece, EKS Anywhere utilizza i binari KinD da contenitori temporanei per configurare i cluster:
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: sostituisci YOUR_CLUSTER_NAME con il nome del tuo cluster EKS Anywhere.
Pulisci le risorse sulla VM per Bare Metal, Nutanix, CloudStack e vSphere
Se durante il processo di creazione vengono create delle macchine virtuali e la creazione fallisce, è necessario ripulirle manualmente.
Se utilizzi un cluster di gestione separato per creare e gestire i cluster EKS Anywhere, consulta la seguente sezione ** Cluster con un cluster ** di gestione. Se il tuo cluster EKS Anywhere non supporta un cluster di gestione separato, consulta la seguente ** sezione ** Cluster senza un cluster di gestione.
Cluster senza un cluster di gestione
Per i cluster senza un cluster di gestione separato, spegni ed elimina tutti i nodi di lavoro, le macchine virtuali ecc. e il server API.
**Nota:**Il nome del cluster è comunemente incluso come prefisso nei nomi delle VM associate ai cluster Nutanix, CloudStack e vSphere.
Per i cluster Bare metal, spegni ed elimina i computer bersaglio.
Cluster con un cluster di gestione
Quando utilizzi un cluster di gestione, un cluster separato monitora lo stato del cluster di carico di lavoro. Se una macchina che fa parte del cluster del carico di lavoro si spegne e si interrompe, il cluster di gestione rileva un problema di integrità. Quindi, il cluster avvia una nuova macchina virtuale per riportare il cluster di carico di lavoro allo stato desiderato.
Pertanto, per ripulire i cluster con cluster di gestione separati, elimina le risorse personalizzate (CRD) che rappresentano il cluster di carico di lavoro dal cluster di gestione. Questo elimina tutte le VM per il cluster di carichi di lavoro.
Nota: nei comandi seguenti, sostituisci WORKLOAD\ _CLUSTER\ _NAME con il nome del cluster di carichi di lavoro. Sostituisci MANAGEMENT\ _CLUSTER\ _FOLDER con la tua cartella di gestione EKS Anywhere. Sostituisci **MANAGEMENT\ _CLUSTER\ _KUBECONFIG\ _FILE ** con il file kubeconfig del tuo cluster di gestione. Il file kubeconfig si trova in MANAGEMENT_CLUSTER_FOLDER.
Elimina la risorsa API Cluster per il cluster di carico di lavoro:
kubectl delete clusters.cluster.x-k8s.io -n eksa-system WORKLOAD_CLUSTER_NAME --kubeconfig MANAGEMENT_CLUSTER_FOLDER/MANAGEMENT_CLUSTER_KUBECONFIG_FILE
Se le risorse esistono, elimina la risorsa clusters.anywhere.eks.amazonaws.com per il cluster:
kubectl delete clusters.anywhere.eks.amazonaws.com WORKLOAD_CLUSTER_NAME --kubeconfig MANAGEMENT_CLUSTER_FOLDER/MANAGEMENT_CLUSTER_KUBECONFIG_FILE
Nota: se la creazione del cluster non è riuscita prima del provisioning della risorsa clusters.anywhere.eks.amazonaws.com, viene visualizzato il seguente errore:
"Errore dal server (NotFound): clusters.anywhere.eks.amazonaws.com "WORKLOAD_CLUSTER_NAME" non trovato"
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa