kubectl get

Wyświetla listę zasobów Kubernetes danego typu.

kubectl get to twoja podstawowa komenda do zaglądania, co się dzieje w klastrze Kubernetes. Wyświetla listę zasobów wybranego typu — podów, deploymentów, serwisów, nodeów, configmapów i wszystkiego innego, co API serwer potrafi pokazać. To pierwsze polecenie, które wpiszesz po połączeniu z klastrem, i prawdopodobnie najczęściej używane. Działa tak samo wszędzie (Linux, macOS, Windows), bo to ten sam klient gadający z API przez kubeconfig.

Składnia i najważniejsze opcje

Podstawowa forma to kubectl get TYPE [NAME] [flagi], gdzie TYPE to np. pods, deployments, svc, a opcjonalny NAME zawęża wynik do jednego zasobu.

  • -o, --output — format wyjścia: wide (więcej kolumn), yaml, json, name albo jsonpath=...
  • -n, --namespace — wskazuje przestrzeń nazw; bez tego dostajesz tylko default
  • -A, --all-namespaces — pokazuje zasoby ze wszystkich przestrzeni nazw naraz
  • -l, --selector — filtruje po etykietach, np. -l app=nginx
  • -w, --watch — śledzi zmiany na żywo, zamiast jednorazowego strzału
  • --field-selector — filtruje po polach, np. status.phase=Running
  • --show-labels — dokleja kolumnę ze wszystkimi etykietami
  • --sort-by — sortuje po wskazanym polu jsonpath, np. --sort-by=.metadata.name

Przykłady użycia

kubectl get pods — pokazuje pody w bieżącej przestrzeni nazw razem ze statusem, liczbą restartów i wiekiem.

kubectl get pods -o wide — to samo, ale z dodatkowymi kolumnami: IP poda i node, na którym leci. Bezcenne przy debugowaniu sieci.

kubectl get pods -A — wszystkie pody w całym klastrze, ze wszystkich namespace’ów. Dobre na szybki przegląd, kto co odpalił.

kubectl get svc -n kube-system — listuje serwisy w przestrzeni kube-system, czyli komponentach systemowych klastra.

kubectl get pods -l app=nginx --field-selector status.phase=Running — tylko działające pody z etykietą app=nginx. Łączysz filtry, gdy lista robi się długa.

Częste błędy i pułapki

Najczęstsza wpadka: brak zasobów, bo zapomniałeś o przestrzeni nazw. kubectl get domyślnie patrzy tylko na default (albo namespace ustawiony w kontekście), więc jeśli twój pod siedzi w app-prod, dodaj -n app-prod albo -A. Druga rzecz: skróty typów. po to pods, deploy to deployments, svc to services — wygodne, ale nie wszystkie pamięta się z głowy, sprawdzisz je przez kubectl api-resources. Uważaj też na -w: komenda nie kończy się sama, wisi i czeka na zmiany, więc przerywasz ją Ctrl+C. I pamiętaj, że get pokazuje skrócony widok — pełne detale, eventy i przyczyny błędów znajdziesz dopiero przez describe.

Powiązane komendy: kubectl describe (szczegóły i eventy zasobu), kubectl logs (logi z poda), kubectl api-resources (lista typów i ich skrótów), kubectl explain (opis pól zasobu).