kubectl delete în Kubernetes (kubectl)

Șterge resurse după nume, etichete sau fișierele YAML din care au fost create.

Sintaxă comandă
kubectl delete (RESURSĂ [NUME] | -f FIȘIER) [-l SELECTOR] [--grace-period=SEC] [--wait]

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 --force pe 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.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: kubectl delete

Ai o nelămurire despre utilizarea comenzii kubectl delete sau 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.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.