Ce face kubectl delete
Comanda kubectl delete elimină obiectele specificate din cluster. Pentru pod-uri, ștergerea este grațioasă implicit: kubelet-ul trimite semnalul SIGTERM proceselor din containere și așteaptă până la terminationGracePeriodSeconds (30 de secunde implicit) înainte de SIGKILL.
Atenție la controlere: dacă ștergi un pod creat de un Deployment, ReplicaSet, StatefulSet sau DaemonSet, controlerul va porni imediat un pod nou în loc ca să mențină numărul de replici. Ca să oprești definitiv aplicația, ștergi Deployment-ul (sau îl scalezi la 0 cu kubectl scale).
Dacă îi pasezi același fișier sau director pe care l-ai folosit la kubectl apply -f, va șterge exact obiectele descrise în acel manifest.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
-f, --filename=CALE |
Șterge resursele definite în fișierul sau directorul indicat. |
-l, --selector=CH=VAL |
Șterge toate resursele de tipul dat care au eticheta respectivă. |
--all |
Șterge toate resursele de tipul dat din namespace-ul curent (de exemplu kubectl delete pods --all). |
--grace-period=SEC |
Perioada de grație în secunde; cu --grace-period=0 --force șterge imediat obiectul din API. |
--wait=true|false |
Așteaptă (implicit true) până când obiectele sunt complet eliminate; cu false revine imediat. |
--ignore-not-found |
Nu returnează cod de eroare dacă resursa nu mai există (util în scripturi). |
--cascade=background|foreground|orphan |
Controlează dacă se șterg și obiectele dependente (de ex. pod-urile unui Deployment) sau rămân orfane. |
Exemple
Exemplul 1: Ștergerea resurselor dintr-un manifest și a unui pod după nume
kubectl delete -f k8s/staging-test.yaml
kubectl delete pod api-6f9b8d7c4-x7k2p
Ieșire în terminal
deployment.apps "staging-test" deleted
service "staging-test" deleted
pod "api-6f9b8d7c4-x7k2p" deleted
Exemplul 2: Curățarea pod-urilor finalizate (Completed / Evicted)
Folosim --field-selector ca să ștergem doar pod-urile care nu mai rulează.
kubectl delete pods --field-selector=status.phase==Succeeded
kubectl delete pods --field-selector=status.phase==Failed
Ieșire în terminal
pod "migrate-db-4k8z2" deleted
pod "worker-old-9b1c4" deleted
Greșeli frecvente
- Ștergerea unui namespace (
kubectl delete ns NUME) fără verificare: șterge ireversibil toate Deployment-urile, Service-urile, Secret-ele și PVC-urile din acel namespace. - Folosirea reflexă a lui
--grace-period=0 --forcepe pod-uri StatefulSet: obiectul dispare din API, dar procesul poate încă rula scurt timp pe nod, riscând scriere dublă pe volum.
Comenzi înrudite
kubectl apply: Creează sau actualizează declarativ resurse din fișiere YAML/JSON ori directoare Kustomize.kubectl get: Listează una sau mai multe resurse, într-un tabel sau în format YAML/JSON.kubectl scale: Modifică manual numărul de replici al unui Deployment, StatefulSet sau ReplicaSet.Obiectul Namespace: Împarte un cluster fizic în sub-clustere logice izolate pe echipe, proiecte sau medii.
Întrebări & Exemple de Cod:
kubectl deleteAi o nelămurire despre utilizarea comenzii
kubectl deletesau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.