Ce face kubectl get
Comanda kubectl get este cea pe care o vei folosi cel mai des: afișează resursele de un anumit tip (pod-uri, deployment-uri, servicii, noduri etc.) sub formă de tabel, cu cele mai importante coloane. Poți folosi numele complet al tipului (pods), forma la singular (pod) sau prescurtarea (po).
Implicit sunt afișate doar resursele din namespace-ul curent; cu -n NUME alegi alt namespace, iar cu -A (--all-namespaces) le vezi pe toate. Cu -o yaml sau -o json obții obiectul complet, așa cum este stocat în cluster, inclusiv secțiunea status.
Opțiunea -w (--watch) ține comanda deschisă și afișează fiecare schimbare, ideal când urmărești pornirea unui deployment. Pentru extragerea unor câmpuri anume în scripturi, folosește -o jsonpath sau -o custom-columns.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
-n, --namespace=NS |
Namespace-ul din care se listează resursele. |
-A, --all-namespaces |
Listează resursele din toate namespace-urile (adaugă coloana NAMESPACE). |
-o wide |
Coloane suplimentare: pentru pod-uri, IP-ul și nodul pe care rulează. |
-o yaml|json |
Afișează obiectul complet în format YAML sau JSON. |
-o jsonpath='{...}' |
Extrage doar anumite câmpuri, de exemplu {.items[*].metadata.name}. |
-l, --selector=CHEIE=VALOARE |
Filtrează după etichete (labels), de exemplu -l app=web,tier!=cache. |
--field-selector=CÂMP=VALOARE |
Filtrează după câmpuri, de exemplu status.phase=Running. |
-w, --watch |
După listare, urmărește și afișează schimbările în timp real. |
Exemple
Exemplul 1: Pod-urile din namespace-ul curent, cu IP și nod
Coloana READY arată câte containere din pod sunt gata din total, iar RESTARTS de câte ori au fost repornite.
kubectl get pods -o wide
Ieșire în terminal
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
web-7c5ddbdf54-4xkqp 1/1 Running 0 2d 10.244.1.12 worker-1 <none> <none>
web-7c5ddbdf54-9tz2m 1/1 Running 0 2d 10.244.2.8 worker-2 <none> <none>
api-6f9b8d7c4-lm2vd 0/1 CrashLoopBackOff 7 (2m13s ago) 15m 10.244.1.15 worker-1 <none> <none>
redis-0 1/1 Running 0 5d 10.244.2.3 worker-2 <none> <none>
Exemplul 2: Mai multe tipuri de resurse, filtrate după etichetă
Tipurile se separă prin virgulă; filtrul -l se aplică tuturor.
kubectl get deploy,svc -l app=web -n shop
Ieșire în terminal
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/web 2/2 2 2 2d
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/web ClusterIP 10.96.142.17 <none> 80/TCP 2d
Exemplul 3: Extragerea imaginilor folosite cu jsonpath
Afișăm, pentru fiecare pod, numele și imaginea primului container.
kubectl get pods -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[0].image}{"\n"}{end}'
Ieșire în terminal
web-7c5ddbdf54-4xkqp nginx:1.27
web-7c5ddbdf54-9tz2m nginx:1.27
api-6f9b8d7c4-lm2vd registry.example.ro/shop/api:2.4.1
redis-0 redis:7.2
Greșeli frecvente
- Căutarea unui pod în namespace-ul greșit și concluzia că „nu există”. Încearcă
kubectl get pods -A | grep nume. - Folosirea
kubectl get allcrezând că afișează absolut tot: în realitate omite ConfigMap-uri, Secret-uri, Ingress-uri, PersistentVolumeClaim-uri și resursele custom. - Ignorarea coloanei
RESTARTS: un pod în stareaRunningcu zeci de reporniri are o problemă reală, care trebuie investigată cukubectl logs --previous.
Comenzi înrudite
kubectl describe: Afișează detaliile complete ale unei resurse, inclusiv evenimentele recente asociate.kubectl logs: Afișează sau urmărește în timp real ieșirea standard (stdout/stderr) a containerelor.kubectl api-resources: Listează toate tipurile de resurse disponibile în cluster, cu prescurtări și grupuri API.kubectl label / kubectl annotate: Adaugă, modifică sau șterge etichete (labels) și adnotări (annotations) pe orice resursă.