Introducing ZYNOO General Purpose & CPU Optimized Servers   Learn More >

Come installare Kubernetes su Ubuntu con K3s

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?.

Installare Kubernetes su Ubuntu con K3s

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.

Ti serve un VPS Ubuntu per Kubernetes?
Distribuisci K3s con accesso root e risorse server flessibili.
Scopri i VPS Ubuntu →

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.

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 è la stessa cosa di Kubernetes?

K3s è una distribuzione Kubernetes certificata. Implementa le funzionalità di Kubernetes, semplificandone l’installazione e riducendo il carico di gestione.

Posso installare Kubernetes su un VPS?

Sì. Puoi eseguire K3s su un VPS Linux con risorse CPU, RAM e spazio di archiviazione sufficienti e accesso amministrativo.

K3s è adatto alla produzione?

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.

Posso disinstallare K3s in seguito?

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.

Table of Content

Un reverse proxy Nginx riceve le richieste dei visitatori di un sito web e le

Un errore 502 Bad Gateway in Nginx di solito significa che Nginx non è riuscito

Un errore 504 Gateway Timeout si verifica quando un server che funge da gateway o

Build your next project with ZYNOO

From your first website to demanding applications, choose the resources and control you need.

Shared Hosting

Start your blog or business website with cPanel, LiteSpeed and CloudLinux.

VPS Hosting

Grow your websites and applications with NVMe storage, KVM virtualization and full root access.

Dedicated Servers

Power demanding projects with your own physical server, dedicated resources and control over your environment.

Torna in alto