1 13/10/2026 8 min

Su Ubuntu 22.04 LTS Minikube si installa senza particolari frizioni, ma la parte che fa perdere tempo di solito non è il download del binario: è la scelta del driver, la compatibilità con il virtualizzatore già presente e la verifica che il nodo locale abbia abbastanza risorse per avviare un cluster Kubernetes sensato. Se parti con aspettative chiare, l’installazione resta pulita: scegli un driver, installi i prerequisiti minimi, avvii Minikube e controlli subito che il cluster risponda a kubectl.

Scelta del driver: la decisione da fare prima di installare

Minikube non è “un cluster” in senso stretto: è un ambiente locale che crea un nodo Kubernetes usando un driver. Su Ubuntu 22.04, in pratica, le opzioni più comuni sono Docker e KVM2. Docker è spesso la scelta più rapida se hai già il demone attivo e non vuoi passare da una VM completa; KVM2 è più vicino a uno scenario virtualizzato classico e può risultare più prevedibile se vuoi separare bene il nodo dal sistema host.

Se non hai vincoli specifici, il driver Docker è il modo più veloce per iniziare. Se invece il tuo laptop o server di test ha già libvirt/KVM configurati, KVM2 è una scelta pulita. Evita di improvvisare con driver diversi a ogni tentativo: scegli uno, verifica che funzioni, poi eventualmente cambi strada.

Prerequisiti minimi su Ubuntu 22.04 LTS

Per installare Minikube servono tre componenti: curl per scaricare i binari, kubectl per interagire con il cluster e un driver operativo. In aggiunta, conviene aggiornare l’indice pacchetti prima di iniziare e controllare che il sistema abbia spazio e RAM sufficienti. Un cluster locale può partire anche con poco, ma appena installi addon o immagini più pesanti si nota subito la mancanza di risorse.

Verifica la versione del sistema e lo stato generale prima di procedere, soprattutto se stai lavorando su una macchina usata anche per altro:

lsb_release -a
free -h
df -h /
uname -r

Se free -h mostra poca RAM libera o df -h segnala il filesystem quasi pieno, è meglio risolvere prima. Minikube può partire, ma poi si inceppa su pull immagini, addon o componenti di sistema.

Installazione di kubectl e Minikube

Il metodo più lineare è installare i binari ufficiali. Su Ubuntu 22.04 non serve complicarsi con repository aggiuntivi se il tuo obiettivo è un setup pulito e ripetibile. Per kubectl puoi usare il pacchetto ufficiale o scaricare il binario; per Minikube il binario ufficiale è di solito la strada più semplice.

Comandi tipici:

sudo apt update
sudo apt install -y curl conntrack socat ebtables

I pacchetti sopra coprono dipendenze utili per il funzionamento del nodo locale e per la gestione della rete del cluster. Se stai usando Docker come driver, aggiungi anche l’installazione del motore Docker prima di proseguire. Se preferisci KVM2, assicurati che libvirt e i moduli di virtualizzazione siano presenti.

Installa kubectl e Minikube con i binari ufficiali:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
rm -f kubectl curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install -o root -g root -m 0755 minikube-linux-amd64 /usr/local/bin/minikube
rm -f minikube-linux-amd64

Dopo l’installazione, controlla le versioni. È un controllo banale, ma ti evita di scoprire a metà strada che il binario non è finito nel PATH o che hai scaricato una versione inattesa:

kubectl version --client
minikube version

Avvio rapido con driver Docker

Se Docker è già installato e funzionante, il primo avvio è semplice. Verifica prima che il demone risponda:

docker version
docker ps

Se i comandi falliscono, non ha senso lanciare Minikube: il problema è nel layer Docker, non in Kubernetes. Una volta confermato che Docker funziona, avvia Minikube:

minikube start --driver=docker

Al termine, minikube imposta il contesto di kubectl sul cluster locale. Il controllo minimo è questo:

kubectl config current-context
kubectl get nodes
kubectl get pods -A

Il nodo dovrebbe risultare Ready. Se vedi NotReady, la causa più comune è un avvio incompleto dei componenti di sistema o una dipendenza di rete non disponibile. In quel caso conviene guardare subito lo stato di Minikube e i log del nodo.

minikube status
minikube logs --file=minikube.log

Avvio con KVM2 quando vuoi una VM dedicata

Se vuoi usare KVM2, prima devi assicurarti che il sistema supporti la virtualizzazione hardware e che i pacchetti corretti siano presenti. I controlli utili sono questi:

egrep -c '(vmx|svm)' /proc/cpuinfo
lsmod | grep kvm
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils

Se il primo comando restituisce 0, il processore o il BIOS/UEFI non espongono la virtualizzazione. Se il modulo kvm non è caricato, il problema è più a valle: può essere un modulo non installato, un BIOS disabilitato o un ambiente già virtualizzato senza nesting abilitato.

Con i prerequisiti a posto, avvia Minikube con il driver KVM2:

minikube start --driver=kvm2

Se il tuo utente non fa parte dei gruppi necessari, puoi trovarti davanti a errori di permesso su libvirt. In quel caso non forzare con sudo a caso: controlla i gruppi e l’accesso al socket di libvirt.

groups
ls -l /var/run/libvirt/libvirt-sock

Quando aggiungi l’utente a un gruppo, fai logout e login prima di ritentare. È uno di quei dettagli che sembrano banali e invece bloccano metà delle installazioni locali.

Verifica del cluster e primo workload

Appena il cluster è up, non fermarti a kubectl get nodes. Fai un controllo più realistico con un deployment semplice e un’esposizione temporanea. Un test minimale è creare un pod NGINX e verificare che il traffico arrivi al container.

kubectl create deployment nginx --image=nginx
kubectl get deployment,pod -o wide
kubectl expose deployment nginx --type=NodePort --port=80
kubectl get svc nginx

Per accedere al servizio in modo rapido, usa il tunnel o il comando dedicato di Minikube:

minikube service nginx --url

Se il servizio risponde, hai confermato che scheduling, rete di base e service discovery funzionano. Se invece il pod resta in Pending, il nodo non ha risorse sufficienti o il driver scelto non sta allocando correttamente CPU e memoria.

Addon utili: ingress, metrics-server e dashboard

Minikube è utile quando abiliti gli addon che ti servono davvero. Due componenti ricorrenti sono ingress e metrics-server. Il primo serve per testare routing HTTP verso più servizi; il secondo ti dà visibilità su consumo di CPU e memoria, utile per capire se il cluster locale è saturo.

Abilitazione tipica:

minikube addons enable ingress
minikube addons enable metrics-server
minikube addons list

Se usi la dashboard, ricordati che è uno strumento di supporto, non il sostituto dei log e dei descrittori Kubernetes. Avviala solo quando ti serve:

minikube dashboard

Per un controllo più preciso, resta su kubectl describe e sui log dei pod. La dashboard aiuta a visualizzare, ma non sempre spiega il perché di un errore.

Problemi comuni e lettura rapida dei sintomi

Se Minikube non parte, il layer da controllare dipende dal sintomo. Se fallisce subito con errori di driver, il problema è tra host e runtime. Se il nodo parte ma i pod restano bloccati, il problema è più spesso nel nodo stesso, nelle immagini o nella rete. Se kubectl non vede il cluster, il contesto o la configurazione locale sono la prima cosa da verificare.

Tre controlli rapidi risolvono molti casi:

  1. Contesto corrente: kubectl config current-context. Se non è minikube, stai parlando con il cluster sbagliato.

  2. Stato del profilo: minikube status. Se componenti come apiserver o kubelet sono down, il problema è nel bootstrap.

  3. Log del cluster: minikube logs. Se vedi errori di pull immagini, spazio disco o cgroup, hai già una traccia concreta.

Un caso frequente su laptop Ubuntu è il conflitto tra container runtime già presenti e driver scelto male. Per esempio, se Docker è installato ma non attivo, Minikube con driver Docker fallisce in modo poco elegante. In quel caso o avvii Docker correttamente oppure passi a KVM2, ma non mescolare le due strade senza ordine.

Aggiornamento, pulizia e rimozione

Quando ti serve aggiornare Minikube, il modo più semplice è sostituire il binario con una versione nuova. Prima però verifica la release che stai usando e se il cluster locale contiene dati o test che ti interessa conservare. In ambienti di laboratorio questo non è quasi mai un problema; in ambienti condivisi, invece, un cleanup distratto può cancellare configurazioni utili.

minikube delete
sudo rm -f /usr/local/bin/minikube /usr/local/bin/kubectl

La rimozione del cluster con minikube delete elimina lo stato locale del profilo. È il comando giusto quando vuoi ripartire da zero, ma va usato con consapevolezza: se hai caricato immagini locali o manifest di test, perdi tutto ciò che era legato a quel profilo.

Configurazione pratica consigliata per partire bene

Se vuoi una baseline ragionevole su Ubuntu 22.04 LTS, questa è la sequenza che di solito evita sorprese: aggiorna il sistema, installa i prerequisiti, scegli il driver in base al runtime disponibile, avvia Minikube, verifica il nodo e lancia un deployment semplice. È una sequenza corta, ma ogni passaggio valida il precedente. Saltarla non fa guadagnare tempo: di solito sposta solo l’errore più avanti.

In sintesi operativa: Docker se hai già il demone pronto e vuoi velocità; KVM2 se preferisci una VM dedicata e un isolamento più netto. In entrambi i casi, il criterio non cambia: prima osservi lo stato del sistema, poi avvii il cluster, poi controlli che kubectl stia parlando con il nodo giusto e che almeno un workload banale venga schedulato e raggiunto.