Perché non riesco a eliminare risorse dal mio cluster Amazon EKS?
Non riesco a eliminare una risorsa dal mio cluster Amazon Elastic Kubernetes Service (Amazon EKS).
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Intraprendi le seguenti azioni di risoluzione dei problemi in base alla risorsa Amazon EKS bloccata nello stato Arresto in corso. I finalizer segnalano ai controller di eliminare le risorse evitando l'eliminazione accidentale. Se la risorsa è bloccata nello stato Arresto in corso, devi rimuovere i finalizer prima di eliminarla. Per ulteriori informazioni sui finalizer, consulta Finalizers (Finalizer) sul sito web Kubernetes.
Risolvi i problemi di eliminazione di un namespace
Per verificare se nel namespace sono presenti risorse bloccate nello stato Arresto in corso, esegui questo comando:
kubectl get all -n namespace-name | grep Terminating
Nota: sostituisci namespace-name con il namespace.
Per eliminare manualmente la risorsa, esegui questo comando:
kubectl delete resource resource-name -n namespace-name
Nota: sostituisci resource con il tipo di risorsa, resource-name con il nome della risorsa e namespace-name con il namespace.
Per verificare la presenza di errori nel finalizer o nel servizio API, esegui questo comando:
kubectl get ns namespace-name -o json
Nota: sostituisci namespace-name con il namespace.
Se ricevi errori nell'output del comando, consulta In che modo posso risolvere i problemi relativi ai namespace nello stato arrestato nel cluster Amazon EKS?
Risolvi i problemi di eliminazione di una risorsa in ingresso
Elimina i bllanciatori di carico o i gruppi di destinazione associati alla risorsa in ingresso.
Per rimuovere i finalizer da una risorsa in ingresso, esegui questo comando:
kubectl patch ingress ingress-name -n namespace-name -p '{"metadata":{"finalizers":[]}}' --type=merge
Nota: sostituisci ingress-name con il nome della risorsa in ingresso e namespace-name con il namespace.
Quindi esegui questo comando per eliminare la risorsa in ingresso:
kubectl delete ingress ingress-name -n namespace-name
Nota: sostituisci ingress-name con il nome della risorsa in ingresso e namespace-name con il namespace.
Risolvi i problemi di eliminazione di un servizio
Per rimuovere i finalizer dalla risorsa del servizio, esegui questo comando:
kubectl patch svc service-name -n namespace-name -p '{"metadata":{"finalizers":[]}}' --type=merge
Nota: sostituisci service-name con il nome del tuo servizio e namespace-name con il namespace.
Utilizza la console Amazon EC2 per disattivare la protezione da eliminazione sul bilanciatore del carico associato al servizio. Oppure utilizza l'annotazione service.beta.kubernetes.io/aws-load-balancer-attributes per disattivare Protezione da eliminazione. Per ulteriori informazioni, consulta Resource attributes (Attributi delle risorse) sul sito web Kubernetes.
Quindi esegui questo comando per eliminare il servizio:
kubectl delete svc service-name -n namespace-name
Nota: sostituisci service-name con il nome del tuo servizio e namespace-name con il namespace.
Risolvi i problemi di eliminazione di un volume persistente (PV) o di una richiesta di volume persistente (PVC)
Se non riesci a eliminare un volume persistente (PV) o una richiesta di volume persistente (PVC), controlla quanto segue:
- Verifica se hai eliminato il PV prima di rimuovere la PVC associata
- Controlla se hai rimosso la PVC quando un pod era ancora in esecuzione e collegato
Hai eliminato il PV
Per risolvere il problema, elimina la PVC associata al PV.
Per identificare la PVC associata al PV bloccato nello stato Arresto in corso, descrivi il PV eseguendo questo comando:
kubectl get pv pv-name
Nota: sostituisci pv-name con il nome del PV. Il comando mostra il nome e il namespace della PVC nel formato NAMESPACE/PVC_NAME.
Esempio di output:
default/ebs-claim
Per eliminare la PVC, esegui questo comando:
kubectl delete pvc -n namespace-name pvc-name
Nota: sostituisci namespace-name con il namespace della PVC e pvc-name con il nome della PVC.
Se non riesci ancora a eliminare il PV, esegui questo comando per rimuovere i relativi finalizer:
kubectl patch pv -p '{"metadata":{"finalizers":null}}' pv-name
Nota: sostituisci pv-name con il nome del PV.
Hai rimosso la PVC
Per risolvere il problema, elimina il pod associato alla PVC.
Per identificare i pod associati alla PVC, descrivi la PVC eseguendo questo comando:
kubectl describe pvc -n namespace-name pvc-name
Nota: sostituisci namespace-name con il namespace della PVC e pvc-name con il nome della PVC. Nell'output, seleziona l'attributo Used by (Usato da).
Esempio di output:
Name: ebs-claim Namespace: default StorageClass: ebs-sc Status: Bound Volume: pvc-3402cc47-c4d7-42c3-8965-f9e1e08f8b95 Labels: <none> Annotations: pv.kubernetes.io/bind-completed: yes pv.kubernetes.io/bound-by-controller: yes volume.beta.kubernetes.io/storage-provisioner: ebs.csi.aws.com volume.kubernetes.io/selected-node: ip-192-168-33-43.ec2.internal volume.kubernetes.io/storage-provisioner: ebs.csi.aws.com Finalizers: [kubernetes.io/pvc-protection] Capacity: 4Gi Access Modes: RWO VolumeMode: Filesystem Used By: ebs-app-59c74d8d45-z65kj Events: <none>
Nell'esempio precedente, la PVC è utilizzata dal pod ebs-app-59c74d8d45-z65kj.
Per eliminare il pod, esegui questo comando:
kubectl delete pod -n namespace-name pod-name
Nota: sostituisci namespace-name con il namespace della PVC e pod-name con il nome del pod.
Se non riesci ancora a eliminare la PVC, esegui questo comando per rimuovere i relativi finalizer:
kubectl patch pvc -p '{"metadata":{"finalizers":null}}' -n namespace-name pvc-name
Nota: sostituisci namespace-name con il namespace della PVC e pvc-name con il nome della PVC.
Risolvi i problemi di eliminazione di un pod
Se non riesci a eliminare un pod, controlla quanto segue:
- Verifica se il pod non risponde ai segnali di arresto
- Controlla se al pod è associato un finalizer che non è stato completato
Il pod non risponde ai segnali di arresto
Importante: la seguente risoluzione elimina immediatamente il pod senza verificare se il pod in esecuzione è stato arrestato. Assicurati che il pod non sia in esecuzione. In caso contrario, il pod potrebbe essere eseguito a tempo indeterminato sul cluster.
I pod vengono generalmente eliminati dopo il periodo di tolleranza predefinito di 30 secondi. Se il pod non viene eliminato dopo 30 secondi, esegui questo comando per forzare l'eliminazione del pod:
kubectl delete pod --force --grace-period=0 -n namespace-name pod-name
Nota: sostituisci namespace-name con il namespace del pod e pod-name con il nome del pod. Devi impostare il flag --grace-period su 0 per rimuovere immediatamente il pod.
Al pod è associato un finalizer che non è stato completato
Per verificare se il pod ha finalizer, esegui questo comando:
kubectl get pod -o yaml -n namespace-name pod-name
Nota: sostituisci namespace-name con il namespace del pod e pod-name con il nome del pod. Nell'output, controlla metadata.finalizers per identificare i finalizer.
Esempio di output:
apiVersion: v1 kind: Pod metadata: creationTimestamp: "2024-09-16T19:32:01Z" finalizers: - kubernetes labels: app: nginx pod-template-hash: 7c79c4bf97 namespace: default spec: containers: - image: nginx:latest imagePullPolicy: Always name: nginx ports: - containerPort: 80 protocol: TCP
Per rimuovere i finalizer, esegui questo comando:
kubectl patch pod -p '{"metadata":{"finalizers":null}}' -n namespace-name pod-name
Nota: sostituisci namespace-name con il namespace del pod e pod-name con il nome del pod.
Risolvi i problemi di eliminazione di un cluster
I problemi di eliminazione di un cluster si verificano perché vi sono gruppi di nodi gestiti collegati al cluster. Per risolvere il problema, rimuovi i gruppi di nodi gestiti. Per ulteriori informazioni, consulta Why can't I delete my Amazon EKS cluster? (Perché non riesco a eliminare il mio cluster Amazon EKS?)
Potresti riscontrare problemi di eliminazione anche se a un cluster è associato uno scraper gestito. In uno scenario del genere, non puoi rimuovere la rete privata virtuale (VPC) o l'interfaccia di rete elastica utilizzata dallo scraper.
Per identificare l'ID dello scraper, esegui questo comando AWS CLI list-scrapers:
aws amp list-scrapers
Quindi esegui questo comando delete-scraper per eliminarlo:
aws amp delete-scraper --scraper-id scraper-example
Nota: sostituisci scraper-example con l'ID dello scraper.
Risolvi i problemi di eliminazione di un gruppo di nodi gestiti in Amazon EKS
Se non riesci a eliminare un gruppo di nodi gestiti, controlla quanto segue:
- Verifica se la risorsa ha un oggetto dipendente
- Controlla se il processo Arresta del gruppo Amazon EC2 Auto Scaling è sospeso
- Controlla se il gruppo di nodi presenta errori di integrità
- Verifica se i pod sono bloccati nei nodi
La risorsa ha un oggetto dipendente
Il problema di dipendenza si verifica quando una risorsa creata dal gruppo di nodi gestiti è associata a un'altra risorsa nell'account AWS. La risorsa è generalmente un gruppo di sicurezza. Per risolvere il problema, identifica gli oggetti associati al gruppo di sicurezza. Quindi dissociare il gruppo di sicurezza dalla risorsa. Se riscontri problemi, consulta Perché non riesco a eliminare un gruppo di sicurezza collegato al mio Amazon VPC?
Il processo di arresto del gruppo EC2 Auto Scaling è sospeso
Per risolvere il problema, riavvia il processo di arresto.
Il gruppo di nodi presenta errori di integrità
Per informazioni sui tipi di errori di integrità che possono verificarsi in un gruppo di nodi gestiti, consulta Issue (Problema).
Per risolvere i problemi di integrità, consulta Come posso risolvere gli errori dei gruppi di nodi gestiti in un cluster Amazon EKS?
I pod sono bloccati nei nodi
Quando elimini il gruppo di nodi gestiti, potresti ricevere il seguente messaggio di errore:
"1 pods are unevictable from node ip-192-168-29-140.ec2.internal"
Il problema può verificarsi se un pod nel cluster è bloccato nello stato Arresto in corso. Per risolvere il problema, ottieni l'accesso kubectl al cluster, quindi esegui questo comando:
kubectl get pod -A
L'errore pods are unevictable potrebbe verificarsi perché hai configurato in maniera non corretta il podDisruptionBudget o perché non hai abbastanza interruzioni disponibili per consentire l'espulsione del pod. Per risolvere il problema, consulta How can I troubleshoot managed node group update issues for Amazon EKS? (Come posso risolvere i problemi di aggiornamento dei gruppi di nodi gestiti in Amazon EKS?)
- Argomenti
- Containers
- Lingua
- Italiano

Contenuto pertinente
AWS UFFICIALEAggiornata 3 anni fa