Vuoi installare Kubernetes su Ubuntu senza configurare da zero un cluster complesso? K3s è una distribuzione Kubernetes leggera che semplifica il processo, rendendola una scelta pratica per gli sviluppatori che imparano a usare Kubernetes su un VPS.
In questa guida scoprirai come installare Kubernetes su Ubuntu 24.04 con K3s, creare un cluster a nodo singolo, distribuire un’applicazione Nginx e verificare che tutto funzioni.
Non dovrai installare Docker né configurare un runtime per container separato.
Che cos’è K3s e perché usarlo?
K3s è una distribuzione Kubernetes leggera, certificata dalla CNCF, progettata per ridurre la complessità dell’installazione e della gestione di Kubernetes.
Riunisce i componenti essenziali, tra cui un runtime per container e la rete del cluster, in un’installazione semplificata.
A differenza di una tradizionale installazione di Kubernetes con kubeadm, K3s gestisce automaticamente gran parte della configurazione iniziale.
Un’installazione di K3s a nodo singolo è un cluster Kubernetes funzionante, adatto allo sviluppo, ai test e all’apprendimento.
Se non conosci concetti di Kubernetes come Pod e Deployment, leggi prima la nostra guida Che cos’è Kubernetes?.

Prerequisiti
Prima di iniziare, ti serviranno:
- Un server con Ubuntu 24.04 LTS.
- Accesso SSH con privilegi sudo.
- Almeno 2 core CPU e 2 GB di RAM.
- Preferibilmente almeno 4 GB di RAM per un ambiente di apprendimento più agevole.
- Spazio di archiviazione SSD sufficiente e accesso a Internet per scaricare le immagini dei container.
K3s indica ufficialmente 2 core CPU e 2 GB di RAM come requisiti minimi per un nodo server. I carichi di lavoro effettivi possono richiedere più risorse.
Nota sulla sicurezza: Mantieni accessibile SSH e limita l’accesso all’API di Kubernetes sulla porta 6443. Per questo tutorial non è necessario aprire pubblicamente tale porta. Se usi UFW o un altro firewall, consulta i requisiti di rete ufficiali di K3s prima dell’installazione.
Passaggio 1: aggiorna il server Ubuntu
Connettiti al server Ubuntu tramite SSH e aggiorna le informazioni sui pacchetti:
sudo apt update
sudo apt upgrade -y
Controlla la versione di Ubuntu:
lsb_release -a
Dovresti vedere Ubuntu 24.04 LTS.
Riavvia il server se gli aggiornamenti di sistema lo richiedono, quindi riconnettiti tramite SSH.
K3s installerà il proprio runtime per container, quindi Docker Engine non è necessario.
Passaggio 2: installa Kubernetes su Ubuntu con K3s
K3s fornisce uno script di installazione ufficiale.
Il comando di installazione standard è:
curl -sfL https://get.k3s.io | sh -
Questo comando scarica ed esegue il programma di installazione di K3s. Consulta le istruzioni ufficiali per l’installazione ed esamina il programma di installazione prima di eseguirlo, soprattutto su un server di produzione.
L’installazione configura K3s come servizio systemd e installa gli strumenti di gestione di Kubernetes.
Al termine del processo, controlla il servizio:
sudo systemctl status k3s
Cerca:
Active: active (running)
Premi q per uscire dalla schermata dello stato.
Se il servizio è in esecuzione, l’installazione di Kubernetes è stata avviata correttamente.
Passaggio 3: verifica il cluster Kubernetes
K3s include il proprio strumento da riga di comando kubectl per gestire le risorse Kubernetes.
Esegui:
sudo k3s kubectl get nodes
Dopo l’inizializzazione del cluster, vedrai un output simile a questo:
NAME STATUS ROLES AGE VERSION
ubuntu-vps Ready control-plane,master 2m v1.xx.x+k3s1
Il nome host e la versione di Kubernetes saranno diversi.
Il valore importante è Ready, che indica che Kubernetes considera il nodo disponibile per i carichi di lavoro.
Ora controlla i Pod di sistema:
sudo k3s kubectl get pods -A
Questo comando elenca i Pod in tutti gli spazi dei nomi, inclusi i servizi di sistema di Kubernetes.
L’inizializzazione di alcuni componenti potrebbe richiedere un po’ di tempo. Se sono ancora in fase di avvio, controlla di nuovo.
Ora che hai usato K3s per installare Kubernetes su Ubuntu, il cluster è pronto per eseguire applicazioni containerizzate. Distribuiamo Nginx per verificare che tutto funzioni.
Passaggio 4: distribuisci la prima applicazione
Ora che il cluster è in esecuzione, distribuiamo un semplice server web Nginx.
Crea un Deployment:
sudo k3s kubectl create deployment demo-nginx --image=nginx:stable
Kubernetes crea un Deployment che gestisce un container Nginx.
Controlla l’avanzamento:
sudo k3s kubectl get deployments
Attendi che il Deployment mostri una replica disponibile.
Puoi anche esaminare il relativo Pod:
sudo k3s kubectl get pods
Alla fine il Pod dovrebbe mostrare lo stato Running, con il container pronto.
Se vedi ContainerCreating, è possibile che il download dell’immagine del container sia ancora in corso.
Passaggio 5: crea un Service Kubernetes
Un Service Kubernetes fornisce un endpoint di rete stabile per accedere a un’applicazione, anche se i suoi Pod vengono sostituiti.
Rendi accessibile il Deployment Nginx all’interno del cluster:
sudo k3s kubectl expose deployment demo-nginx --type=ClusterIP --port=80
Controlla il Service:
sudo k3s kubectl get services
Dovresti vedere un Service chiamato demo-nginx, con un indirizzo ClusterIP e la porta 80.
Il tipo ClusterIP rende l’applicazione disponibile all’interno del cluster Kubernetes. Non espone Nginx direttamente a Internet.
Passaggio 6: testa l’applicazione Nginx
Useremo l’inoltro delle porte di Kubernetes per testare l’applicazione senza configurare un bilanciatore di carico pubblico.
Esegui:
sudo k3s kubectl port-forward service/demo-nginx 8080:80
Lascia aperta questa sessione SSH.
Il comando inoltra la porta 8080 dell’interfaccia di loopback del server alla porta 80 del Service Nginx.
Apri una seconda connessione SSH allo stesso server ed esegui:
curl http://127.0.0.1:8080
Dovresti ricevere codice HTML contenente la pagina di benvenuto predefinita di Nginx.
Operazione riuscita! Hai installato Kubernetes su Ubuntu con K3s, distribuito un’applicazione containerizzata e vi hai avuto accesso tramite un Service Kubernetes.
Premi Ctrl+C nella prima sessione per interrompere l’inoltro delle porte.
Questo test verifica solo l’accesso locale. Per rendere un’applicazione accessibile pubblicamente, sono necessarie ulteriori configurazioni di rete, DNS, TLS e sicurezza.
Problemi comuni durante l’installazione di K3s
Il servizio K3s non si avvia
Controlla i log del servizio:
sudo journalctl -u k3s -n 50
Cerca problemi di autorizzazione, problemi di rete o componenti che non si sono avviati correttamente.
Il nodo Kubernetes mostra NotReady
Controlla i dettagli del nodo:
sudo k3s kubectl describe node
Esamina le condizioni segnalate, l’utilizzo delle risorse di sistema e la rete.
Il Pod Nginx non è in esecuzione
Esamina il Pod:
sudo k3s kubectl get pods
Poi controlla gli eventi del Deployment:
sudo k3s kubectl describe deployment demo-nginx
Il mancato download dell’immagine, risorse insufficienti o problemi di rete del cluster possono impedire l’avvio dei Pod.
L’inoltro delle porte non funziona
Assicurati che il Pod Nginx sia pronto e che il Service esista.
Ricorda che il comando di inoltro delle porte deve rimanere in esecuzione mentre testi l’applicazione dalla seconda sessione SSH.
Serve Docker per eseguire K3s?
No. K3s include containerd, un runtime per container usato per eseguire i carichi di lavoro Kubernetes.
Puoi distribuire immagini di container compatibili, comprese quelle create con Docker, senza installare Docker Engine sul server K3s.
Se non conosci la containerizzazione, la nostra guida a Docker per principianti spiega come funzionano i container e le immagini.
Quali sono i prossimi passi?
Il tuo cluster a nodo singolo è adatto a sperimentare i concetti di Kubernetes, ma non è automaticamente un ambiente ad alta disponibilità pronto per la produzione.
Prima di distribuire applicazioni aziendali critiche, pianifica:
- Il controllo degli accessi al cluster e gli aggiornamenti di sicurezza.
- L’archiviazione persistente e le procedure di backup.
- Il monitoraggio e i limiti delle risorse.
- L’esposizione sicura delle applicazioni tramite HTTPS.
- Il ripristino in caso di guasto del nodo o del server.
Ricorda che un cluster a nodo singolo dipende comunque da un’unica macchina fisica o virtuale. Kubernetes non può eliminare questo singolo punto di guasto.
Domande frequenti
K3s è una distribuzione Kubernetes certificata. Implementa le funzionalità di Kubernetes, semplificandone l’installazione e riducendo il carico di gestione.
Sì. Puoi eseguire K3s su un VPS Linux con risorse CPU, RAM e spazio di archiviazione sufficienti e accesso amministrativo.
K3s può essere usato in produzione, ma l’affidabilità dipende dall’architettura del cluster, dalla capacità, dalla rete, dalla sicurezza e dalla configurazione dei backup.
Sì. K3s fornisce uno script di disinstallazione, ma la rimozione può eliminare le risorse del cluster e i dati locali dei carichi di lavoro. Esegui un backup di tutto ciò che è importante prima di disinstallarlo.
Conclusione
Ora sai come installare Kubernetes su Ubuntu con K3s, verificare il tuo cluster a nodo singolo e distribuire un’applicazione Nginx.
Con K3s hai creato un ambiente Kubernetes a nodo singolo funzionante, distribuito Nginx, reso l’applicazione accessibile tramite un Service e verificato che funzioni usando l’inoltro delle porte.
Man mano che acquisisci esperienza, puoi approfondire i Deployment, la scalabilità, la configurazione e la gestione del cluster.