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 upgradeSe il kernel viene aggiornato, riavvia la macchina prima di proseguire.
sudo reboot2. 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 updatesudo apt -y install ca-certificates curl gnupgsudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgecho \
"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/nullsudo apt updatesudo apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginVerifica che Docker risponda correttamente:
sudo docker versionAtteso: output con Server e Client. Se il demone non parte, controlla:
sudo systemctl status docker --no-pager3. Crea un volume persistente
Rancher conserva dati e configurazioni; senza volume perdi tutto al riavvio del container.
sudo docker volume create rancher-dataSe vuoi ispezionare il volume:
sudo docker volume inspect rancher-data4. 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:latestNota 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 psAtteso: container rancher in esecuzione con porte 80 e 443. Se esce subito, leggi i log:
sudo docker logs --tail=100 rancher5. 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 è:
- DNS del nome verso il server.
- Proxy in ascolto su 443.
- 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.
kubectlconfigurato.helminstallato.- 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/stablehelm repo updateCrea il namespace:
kubectl create namespace cattle-systemInstalla 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=3Se 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 podsAtteso: 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 rancherDNS 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.comAtteso: 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.comAtteso: 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 verboseSe necessario apri solo le porte richieste:
sudo ufw allow 443/tcpsudo ufw allow 80/tcpPrimo 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:
- Servizio raggiungibile:
curl -Ik https://rancher.example.com. - UI accessibile: login via browser senza loop.
- Container o pod attivo:
docker psoppurekubectl get pods -n cattle-system. - Log senza errori ricorrenti:
docker logs rancherokubectl logs. - 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.jsonSe un upgrade rompe il servizio, puoi fermare il container e riavviare con l’immagine precedente, mantenendo il volume rancher-data.
sudo docker stop ranchersudo docker rm ranchersudo 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 rancherAssunzione: 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ì.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.