Ce face kubectl top
Comanda kubectl top arată consumul actual de CPU (în milicore, m; 1000m = un nucleu) și memorie pentru noduri sau pod-uri. Este echivalentul rapid al comenzii top din Linux, dar la nivel de cluster.
Important: comanda funcționează doar dacă în cluster este instalat metrics-server (sau o altă implementare a API-ului metrics.k8s.io). Fără el vei primi eroarea Metrics API not available. Pe minikube îl activezi cu minikube addons enable metrics-server.
Valorile sunt eșantionate la câteva zeci de secunde și nu păstrează istoric; pentru grafice în timp ai nevoie de un sistem de monitorizare precum Prometheus. Aceleași metrici sunt folosite și de HorizontalPodAutoscaler (vezi kubectl autoscale).
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
node [NUME] |
Consumul pe noduri, cu procentul din capacitatea alocabilă. |
pod [NUME] |
Consumul pe pod-uri din namespace-ul curent. |
-A, --all-namespaces |
Pod-urile din toate namespace-urile. |
--containers |
Defalcă consumul pe fiecare container din pod. |
--sort-by=cpu|memory |
Sortează descrescător după CPU sau memorie. |
-l, --selector=... |
Filtrează pod-urile după etichete. |
Exemple
Exemplul 1: Consumul nodurilor
kubectl top nodes
Ieșire în terminal
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
control-plane 212m 10% 1489Mi 38%
worker-1 1340m 67% 3012Mi 78%
worker-2 485m 24% 1876Mi 48%
Exemplul 2: Pod-urile cele mai „flămânde” după memorie
kubectl top pods -A --sort-by=memory | head -5
Ieșire în terminal
NAMESPACE NAME CPU(cores) MEMORY(bytes)
shop redis-0 18m 612Mi
shop api-6f9b8d7c4-lm2vd 402m 488Mi
monitoring prometheus-server-0 95m 455Mi
kube-system kube-apiserver-control-plane 61m 301Mi
Exemplul 3: Eroarea când lipsește metrics-server
Instalează metrics-server din manifestul oficial, apoi așteaptă un minut până apar primele valori.
kubectl top pods
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Ieșire în terminal
error: Metrics API not available
serviceaccount/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
...
deployment.apps/metrics-server created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
Greșeli frecvente
- Compararea valorilor din
topcu cele dindescribe node:toparată consumul real, iardescribearată rezervările (requests/limits). - Pe clustere locale (kind, kubeadm) metrics-server poate eșua din cauza certificatelor kubelet autosemnate; o soluție de test este argumentul
--kubelet-insecure-tls, nerecomandat în producție.
Comenzi înrudite
kubectl autoscale: Creează un HorizontalPodAutoscaler (HPA) care ajustează automat numărul de replici după consumul de CPU.kubectl describe: Afișează detaliile complete ale unei resurse, inclusiv evenimentele recente asociate.kubectl get: Listează una sau mai multe resurse, într-un tabel sau în format YAML/JSON.