Skip to content

Kubernetes CLI Cheat Sheet

Informazioni sul cluster

kubectl cluster-info

Mostra il contesto attivo

kubectl config current-context

Cambia il contesto attivo

kubectl config use-context <nome-contesto>

Elenco di tutti i nodi

kubectl get nodes

Dettagli di un nodo specifico

kubectl describe node <nome-nodo>

Consumo risorse Nodi (CPU/RAM)

kubectl top nodes

Elenco risorse API disponibili

kubectl api-resources

Documentazione dei campi dello Spec

kubectl explain <kind>.spec

Cordon (Marca come non schedulabile)

kubectl cordon <nome-nodo>

Uncordon (Marca come schedulabile)

kubectl uncordon <nome-nodo>

Drain (Svuota il nodo per manutenzione)

kubectl drain <nome-nodo> --ignore-daemonsets --delete-emptydir-data

Forza drain senza conferma

kubectl drain <nome-nodo> --ignore-daemonsets --delete-emptydir-data --force

Aggiungi Label a un nodo o pod

# --- VISUALIZZAZIONE ---

# Vedere le Label di tutti i nodi
kubectl get nodes --show-labels

# Vedere le Label di un nodo specifico
kubectl get node <nome-nodo> --show-labels

# Vedere i Taint di tutti i nodi (formato tabella personalizzata)
kubectl get nodes -o custom-columns=NAME:.metadata.name,TAINTS:.spec.taints

# Vedere i dettagli completi (inclusi Taint) di un nodo
kubectl describe node <nome-nodo> | grep -i Taint


# --- GESTIONE LABEL ---

# Aggiungi Label a un nodo o pod
kubectl label nodes <nome-nodo> <chiave>=<valore>
kubectl label pod <nome-pod> <chiave>=<valore>

# Rimuovi Label da un nodo o pod (segno meno dopo la chiave)
kubectl label nodes <nome-nodo> <chiave>-
kubectl label pod <nome-pod> <chiave>-


# --- GESTIONE TAINT ---

# Applica un Taint a un nodo
kubectl taint nodes <nome-nodo> <chiave>=<valore>:<effetto>
# Esempio: kubectl taint nodes rke2-master node-role.kubernetes.io/control-plane=true:NoSchedule

# Rimuovi un Taint da un nodo (segno meno dopo l'effetto)
kubectl taint nodes <nome-nodo> <chiave>:<effetto>-
# Esempio: kubectl taint nodes rke2-master node-role.kubernetes.io/control-plane:NoSchedule-

Elenca tutti i namespace

kubectl get namespaces

Crea un nuovo namespace

kubectl create namespace <nome>

Elimina un namespace

kubectl delete namespace <nome>

Imposta il namespace predefinito per il contesto corrente

kubectl config set-context --current --namespace=<nome>

Elenca Pod (Tutti i namespace)

kubectl get pods -A

Consumo risorse Pod

kubectl top pods

Dettagli e stato del Pod (Eventi)

kubectl describe pod <nome-pod>

Visualizza Log (Streaming)

kubectl logs -f <nome-pod>

Accesso Shell interattiva

kubectl exec -it <nome-pod> -- bash

Copia file tra locale e Pod

kubectl cp <locale> <nome-pod>:<remoto>

Debug con ephemeral container

kubectl debug -it <nome-pod> --image=busybox

Scala il numero di repliche

kubectl scale deployment <nome> --replicas=<n>

Riavvio forzato (Rolling Restart)

kubectl rollout restart deployment <nome>

Stato del rollout

kubectl rollout status deployment/<nome>

Rollback alla versione precedente

kubectl rollout undo deployment/<nome>

Aggiorna l'immagine di un container

kubectl set image deployment/<nome> <container>=<img:tag>

Annotazione rollout (Change Cause)

kubectl annotate deployment/<nome> change-cause="Aggiornamento versione"

Elenca tutti i servizi

kubectl get svc

Port Forwarding locale (Debug)

kubectl port-forward svc/<nome-servizio> <porta-locale>:<porta-servizio>

Elenca Ingress

kubectl get ingress

Verifica Endpoints

kubectl get endpoints <nome-servizio>

Debug Network con ping/traceroute

kubectl exec -it <nome-pod> -- ping <destinazione>
kubectl exec -it <nome-pod> -- traceroute <destinazione>

Applica o aggiorna da file YAML

kubectl apply -f <file.yaml>

Esporta risorsa esistente in YAML

kubectl get <kind> <nome> -o yaml

Modifica risorsa live (Editor)

kubectl edit <kind> <nome>

Verifica permessi RBAC

kubectl auth can-i <verbo> <risorsa>

Mostra risorse dei nodi

kubectl top nodes

Mostra risorse dei Pod

kubectl top pods
kubectl top pods -A

Verifica eventi recenti nel namespace

kubectl get events -n <namespace> --sort-by='.metadata.creationTimestamp'

Verifica lo stato di tutti i pod con dettagli

kubectl get pods -o wide

Verifica utilizzo risorse in tempo reale con metrics-server

kubectl top pods --containers
kubectl top node <nome-nodo>

Elenca tutte le API disponibili

kubectl api-resources

Elenca tutte le versioni API

kubectl api-versions

Documentazione dei campi dello Spec

kubectl explain <kind>
kubectl explain <kind>.spec
kubectl explain <kind>.spec.containers