Skip to content

Kubernetes: Comandi Utili (Cheat Sheet kubectl)

Questa guida mappa i concetti operativi di orchestrazione sul client ufficiale kubectl, standardizzando la gestione delle risorse nel cluster.


Gestione e Info del Cluster

Comando Descrizione
kubectl cluster-info Mostra lo stato e gli indirizzi dei servizi del Control Plane.
kubectl version --short Verifica la versione del client e del server API.
kubectl api-resources Elenca tutte le risorse supportate dal cluster con le relative abbreviazioni.
kubectl config get-contexts Elenca tutti i contesti (cluster e credenziali) disponibili nel kubeconfig.
kubectl config use-context <nome_contesto> Cambia il contesto attivo per puntare a un cluster differente.

Gestione dei Nodi

Comando Descrizione
kubectl get nodes Elenca tutti i nodi del cluster con il loro stato operativo.
kubectl describe node <node_name> Mostra metriche, eventi e risorse allocate (CPU/RAM) di un nodo specifico.
kubectl cordon <node_name> Contrassegna il nodo come non schedulabile (impedisce nuovi Pod).
kubectl drain <node_name> --ignore-daemonsets Sfratta i Pod attivi dal nodo per manutenzione, replicandoli altrove.
kubectl uncordon <node_name> Riattiva il nodo rendendolo nuovamente disponibile per lo scheduling.
kubectl delete node <node_name> Rimuove logicamente il nodo dal cluster.

Creazione e Inizializzazione delle Risorse (create & apply)

Comando Descrizione
kubectl create -f risorsa.yaml Crea una risorsa a partire da un file YAML (fallisce se la risorsa esiste già).
kubectl apply -f risorsa.yaml Crea o aggiorna una risorsa in modo dichiarativo a partire da un file YAML.
kubectl create deployment <nome_deploy> --image=<immagine> Genera imperativamente un nuovo Deployment con l'immagine specificata.
kubectl create namespace <nome_namespace> Crea un nuovo segmento logico (Namespace) isolato all'interno del cluster.

Gestione dei Deployment (Equivalente degli Stack)

Comando Descrizione
kubectl get deployments Elenca tutti i Deployment attivi nel namespace corrente.
kubectl describe deployment <deploy_name> Mostra i dettagli logici e la cronologia degli eventi del Deployment.
kubectl scale deployment <deploy_name> --replicas=5 Scala dinamicamente il numero di repliche del Deployment a 5.
kubectl rollout restart deployment <deploy_name> Forza un rolling update (riavvio controllato di tutti i task/Pod).
kubectl rollout status deployment <deploy_name> Monitora lo stato di avanzamento del deployment in corso.
kubectl delete deployment <deploy_name> Elimina il deployment e distrugge tutti i Pod correlati.

Esposizione dei Servizi (expose)

Comando Descrizione
kubectl expose deployment <nome_deploy> --port=80 --target-port=80 --type=ClusterIP Espone il deployment internamente al cluster sulla porta 80.
kubectl expose deployment <nome_deploy> --port=80 --type=NodePort Espone il servizio esternamente aprendo una porta statica su ciascun nodo.
kubectl expose pod <nome_pod> --port=443 --name=servizio-pod-sicuro Espone un singolo Pod specifico assegnando un nome personalizzato al servizio.

Gestione dei Pod e dei Servizi

Comando Descrizione
kubectl get pods Elenca i Pod attivi, inclusi gli stati di errore o completamento.
kubectl get pods -o wide Mostra i Pod con dettagli avanzati (IP assegnato e nodo ospitante).
kubectl run <pod_name> --image=<image_name> Istanzia un singolo Pod in modalità imperativa (equivalente a un run isolato).
kubectl get svc Elenca tutti i servizi (ClusterIP, NodePort, LoadBalancer) attivi.
kubectl describe pod <pod_name> Diagnostica approfondita del Pod (errori di pull, crash, probe falliti).
kubectl logs <pod_name> Estrae i log dello standard output del container primario nel Pod.
kubectl logs <pod_name> -c <container_name> Estrae i log di uno specifico container in un Pod multi-container.
kubectl exec -it <pod_name> -- /bin/sh Apre una sessione interattiva nel terminale del container all'interno del Pod.

ConfigMap e Secrets

Comando Descrizione
kubectl create configmap <nome_config> --from-literal=chiave=valore Crea una ConfigMap inserendo una coppia chiave-valore direttamente da CLI.
kubectl create secret generic <nome_secret> --from-literal=chiave=segreto Crea un Secret generico codificando la stringa in Base64.
kubectl get configmaps Elenca tutte le ConfigMap presenti nel namespace.
kubectl get secrets Elenca tutti i Secret presenti nel namespace.
kubectl get secret <nome_secret> -o yaml Estrae i metadati e il payload codificato del Secret in formato YAML.
kubectl describe configmap <nome_config> Mostra le chiavi e i dati non sensibili memorizzati nella ConfigMap.