51 07/04/2026 8 min

Rancher su Ubuntu 22.04: scelta dell’architettura

Rancher non è un semplice demone da avviare e basta: prima di installarlo devi decidere come ospitarlo. Su Ubuntu 22.04 hai due strade tipiche:

  • Rancher in Docker, adatto a test, lab o ambienti piccoli.
  • Rancher su Kubernetes, la scelta corretta per un uso più serio, con persistenza, replica e integrazione pulita con il cluster.

Se il tuo obiettivo è gestire più cluster o avere una piattaforma stabile, la strada da preferire è Kubernetes. Se invece vuoi validare il prodotto o fare una prova veloce, Docker è più rapido. In ogni caso, evita di trattarlo come una web app qualsiasi: Rancher espone API, gestisce credenziali e dipende molto da TLS, DNS e storage.

Questa guida copre entrambi gli approcci, ma mette al centro la versione su Docker perché è la più immediata su Ubuntu 22.04. Alla fine trovi anche la variante consigliata su Kubernetes con Helm.

Prerequisiti minimi

Prima di procedere verifica questi punti:

  • Ubuntu 22.04 aggiornato.
  • Accesso root o sudo.
  • Un nome DNS valido, per esempio rancher.example.com.
  • Certificato TLS valido, oppure un reverse proxy che lo termini.
  • Almeno 2 vCPU e 4 GB di RAM per un’installazione piccola; di più se prevedi uso reale.

Controlla anche che la porta 443/tcp sia raggiungibile dall’esterno e che non ci siano conflitti con altri servizi.

sudo ss -ltnp | grep -E ':(80|443)'

Se la macchina è dietro firewall, apri solo ciò che serve. Rancher deve essere esposto in HTTPS, non in HTTP puro.

Installazione rapida di Rancher con Docker

Questa modalità è utile per test, PoC o ambienti piccoli. La logica è semplice: installi Docker, avvii il container Rancher con persistenza, poi accedi via browser.

1. Aggiorna il sistema

sudo apt update && sudo apt -y upgrade

Se il kernel viene aggiornato, riavvia la macchina prima di proseguire.

sudo reboot

2. Installa Docker Engine

Su Ubuntu 22.04 conviene usare il repository ufficiale di Docker. Il pacchetto da repository Ubuntu può andare bene per prove, ma per un setup pulito meglio il ramo ufficiale.

sudo apt update
sudo apt -y install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Verifica che Docker risponda correttamente:

sudo docker version

Atteso: output con Server e Client. Se il demone non parte, controlla:

sudo systemctl status docker --no-pager

3. Crea un volume persistente

Rancher conserva dati e configurazioni; senza volume perdi tutto al riavvio del container.

sudo docker volume create rancher-data

Se vuoi ispezionare il volume:

sudo docker volume inspect rancher-data

4. Avvia Rancher

La modalità più semplice è usare l’immagine ufficiale di Rancher con porta 443 esposta. Per un setup base puoi farlo così:

sudo docker run -d \
  --restart=unless-stopped \
  --privileged \
  -p 80:80 \
  -p 443:443 \
  -v rancher-data:/var/lib/rancher \
  --name rancher \
  rancher/rancher:latest

Nota pratica: latest è comodo per prove, ma in produzione è meglio fissare una versione specifica. Se fai upgrade senza pinning, il comportamento può cambiare in modo non previsto.

Controlla lo stato del container:

sudo docker ps

Atteso: container rancher in esecuzione con porte 80 e 443. Se esce subito, leggi i log:

sudo docker logs --tail=100 rancher

5. Accesso iniziale

Apri il browser su https://rancher.example.com o sull’IP pubblico se stai facendo test. Al primo accesso Rancher mostra la procedura di bootstrap dell’account amministratore.

Se il certificato non è ancora pronto, il browser segnalerà una connessione non attendibile. In produzione non ignorare quel warning: configura TLS corretto prima di esporre il servizio agli utenti.

TLS: come farlo bene

Rancher deve stare dietro HTTPS. Hai due approcci:

  • Certificato direttamente su Rancher, adatto a installazioni semplici.
  • Reverse proxy davanti a Rancher, utile se hai già Nginx, Apache o un bilanciatore.

Se usi un dominio pubblico, il percorso più pulito è terminare TLS con un reverse proxy e fare proxy verso Rancher in locale. In alternativa puoi montare certificato e chiave nel container, ma la gestione può diventare più macchinosa.

Con un reverse proxy, la logica è:

  1. DNS del nome verso il server.
  2. Proxy in ascolto su 443.
  3. Forward verso Rancher su localhost o rete interna.

Esempio concettuale con Nginx:

server {
  listen 443 ssl http2;
  server_name rancher.example.com;

  ssl_certificate     /etc/letsencrypt/live/rancher.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/rancher.example.com/privkey.pem;

  location / {
    proxy_pass https://127.0.0.1:8443;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

Se il proxy è davanti, assicurati che Rancher sappia di stare dietro HTTPS. Errori qui producono redirect infiniti, cookie non validi o login che non persiste.

Installazione con Kubernetes e Helm

Se il tuo obiettivo è un deployment più robusto, Rancher va installato in un cluster Kubernetes già funzionante. In questo scenario il pattern tipico è: cluster esistente, ingress controller, certificati TLS e Helm chart ufficiale.

Prerequisiti:

  • Un cluster Kubernetes operativo.
  • kubectl configurato.
  • helm installato.
  • Ingress controller già presente, per esempio Nginx Ingress.
  • Cert-manager se vuoi gestire automaticamente i certificati.

Aggiungi il repository Helm di Rancher:

helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm repo update

Crea il namespace:

kubectl create namespace cattle-system

Installa Rancher specificando il hostname e, se serve, il bootstrap di TLS con cert-manager:

helm install rancher rancher-stable/rancher \
  --namespace cattle-system \
  --set hostname=rancher.example.com \
  --set replicas=3

Se usi cert-manager, la configurazione cambia in base al tuo issuer. In quel caso verifica la documentazione del chart per i valori corretti, perché la combinazione tra ingress class, issuer e secret name è un punto dove è facile sbagliare.

Controlla i pod:

kubectl -n cattle-system get pods

Atteso: pod Rancher in Running e READY corretto. Se restano in Pending o CrashLoopBackOff, i primi controlli sono eventi del namespace e log del pod:

kubectl -n cattle-system describe pod <nome-pod>
kubectl -n cattle-system logs <nome-pod> -c rancher

DNS e rete: errori tipici

Molti problemi di installazione di Rancher non sono Rancher, ma DNS o rete. Prima di cercare bug nell’applicazione, verifica il layer esterno.

Controlla che il nome punti all’IP giusto:

dig +short rancher.example.com

Atteso: l’IP pubblico o l’IP del bilanciatore. Se il record è sbagliato, il login non raggiungerà mai il server corretto.

Verifica anche la reachability della porta 443:

curl -Ik https://rancher.example.com

Atteso: un HTTP/1.1 200, 301 o comunque una risposta del servizio. Se ottieni timeout, connection refused o handshake TLS fallito, il problema è a monte o sul proxy.

Se usi firewall locale, controlla UFW:

sudo ufw status verbose

Se necessario apri solo le porte richieste:

sudo ufw allow 443/tcp
sudo ufw allow 80/tcp

Primo accesso e bootstrap dell’admin

Al primo accesso Rancher chiede di impostare la password dell’amministratore iniziale e di confermare il nome host. Da qui in poi il servizio inizia a gestire i cluster.

Usa una password forte e, se possibile, limita l’accesso iniziale da IP fidati. Rancher è un piano di controllo: esporlo senza controllo è un errore operativo serio.

Dopo il login, verifica che la UI carichi senza errori e che la sessione resti attiva dopo refresh. Se il browser torna alla pagina di login in loop, il problema è quasi sempre:

  • hostname errato;
  • proxy header mancanti;
  • cookie TLS/secure non coerenti;
  • certificato non allineato al dominio.

Verifiche finali

Una volta completata l’installazione, fai questi controlli minimi:

  1. Servizio raggiungibile: curl -Ik https://rancher.example.com.
  2. UI accessibile: login via browser senza loop.
  3. Container o pod attivo: docker ps oppure kubectl get pods -n cattle-system.
  4. Log senza errori ricorrenti: docker logs rancher o kubectl logs.
  5. DNS corretto: dig +short rancher.example.com.

Se uno di questi punti fallisce, non andare avanti con la configurazione dei cluster: correggi prima il piano di controllo.

Rollback e manutenzione

Per la versione Docker, il rollback è semplice se hai mantenuto il volume separato. Prima di cambiare immagine o parametri, salva la configurazione del container:

sudo docker inspect rancher > rancher-inspect.json

Se un upgrade rompe il servizio, puoi fermare il container e riavviare con l’immagine precedente, mantenendo il volume rancher-data.

sudo docker stop rancher
sudo docker rm rancher
sudo docker run -d --restart=unless-stopped --privileged -p 80:80 -p 443:443 -v rancher-data:/var/lib/rancher --name rancher rancher/rancher:<versione-precedente>

Per Kubernetes, il rollback passa da Helm:

helm -n cattle-system rollback rancher <revision>

Prima di farlo, verifica la cronologia:

helm -n cattle-system history rancher

Assunzione: hai un dominio dedicato, accesso amministrativo al server o al cluster e vuoi un’installazione funzionante, non solo una demo.

Errori comuni da evitare

Ci sono alcuni errori ricorrenti che fanno perdere tempo:

  • Usare Rancher senza TLS.
  • Non fissare una versione e aggiornare alla cieca.
  • Non avere persistenza per i dati.
  • Esporre la UI su IP pubblico senza limitazioni.
  • Confondere problemi di DNS con problemi dell’applicazione.
  • Dimenticare che Rancher è un control plane e va trattato come componente critico.

Se stai installando Rancher per ambiente di produzione, la scelta più sensata è: Kubernetes già stabile, ingress ben configurato, TLS valido, backup e monitoring. Se invece ti serve solo un’istanza singola per test, Docker va bene purché tu sappia che è una soluzione più fragile.

In sintesi: su Ubuntu 22.04 Rancher si installa senza complicazioni, ma la parte davvero importante non è il comando di avvio. Sono DNS, TLS, persistenza, rete e controllo degli accessi. Se questi elementi sono a posto, l’installazione è lineare; se sono sbagliati, i sintomi sembrano casuali ma la causa è quasi sempre lì.