Guida Ollama su OpenShift
Guida Ollama su OpenShift
Indice Guida Ollama su OpenShift
- Che cos’è Red Hat OpenShift
- Che cos’è Ollama
- Perché integrare Ollama su OpenShift
- Quando conviene usare Ollama su OpenShift (e quando no)
- Requisiti hardware e software
- Installazione passo per passo: metodo manuale con manifest YAML
- Installazione tramite Ollama Operator
- Esecuzione di modelli LLM in ambiente sicuro
- Integrazione con Open WebUI e strumenti di sviluppo
- Vantaggi e svantaggi attuali
- Conclusioni e best practice
1. Che cos’è Red Hat OpenShift
Red Hat OpenShift è una piattaforma affidabile, completa e consistente per sviluppare, modernizzare e distribuire applicazioni su larga scala, incluse le applicazioni abilitate all’AI. In termini pratici, OpenShift è un’intera “Internal Development Platform” costruita, testata e supportata da Red Hat. Kubernetes è il motore, OpenShift fornisce l’automobile completa: dashboard, sistema di sicurezza e piano di servizio. La versione stabile più recente è la 4.20, rilasciata nel 2025. OpenShift supporta deployment on-premise, cloud ibrido e multi-cloud, con RBAC integrato, pipeline CI/CD, logging, monitoring e registry interno.
2. Che cos’è Ollama
Ollama è un framework open source che consente di eseguire modelli linguistici di grandi dimensioni (LLM) localmente o all’interno della propria infrastruttura, attraverso un’interfaccia REST semplice esposta sulla porta 11434. Supporta modelli come Llama 3, Mistral, Granite, CodeLlama e molti altri in formato GGUF. Ollama semplifica il deployment degli LLM open source fornendo un framework facile da usare per eseguirli localmente o nella propria infrastruttura. Combinato con una piattaforma di orchestrazione container robusta come OpenShift, si ottiene scalabilità, gestibilità e funzionalità di livello enterprise per il deployment dei modelli LLM.
3. Perché integrare Ollama su OpenShift
L’integrazione di Ollama su OpenShift risponde a una esigenza crescente nelle organizzazioni: avere inferenza AI locale, sicura e scalabile, senza dipendere da API esterne come OpenAI. I vantaggi strategici sono chiari: il codice e i dati rimangono on-premises o nella propria rete, senza che nulla venga trasmesso all’esterno. È facile da distribuire, mantenere e scalare grazie a OpenShift. Inoltre è possibile esporre il servizio Ollama come endpoint API centralizzato fruibile da tutto il team di sviluppo, integrandolo in pipeline RAG, chatbot aziendali, assistenti alla programmazione e workflow di automazione.
4. Quando conviene usare Ollama su OpenShift (e quando no)
Conviene usare Ollama su OpenShift quando:
- L’organizzazione opera in settori regolamentati (sanità, finanza, difesa, pubblica amministrazione) dove i dati non possono lasciare il perimetro aziendale.
- Si vuole costruire un assistente AI condiviso dal team senza acquistare licenze per strumenti come GitHub Copilot.
- Si gestiscono dati sensibili o proprietari che non devono essere inviati a servizi cloud di terze parti.
- Si necessita di personalizzare o fare fine-tuning di modelli open source sul proprio codebase.
- Il cluster OpenShift è già presente in infrastruttura e si vuole aggiungere inferenza AI senza introdurre nuovi ambienti.
Non conviene quando:
- Il carico di lavoro AI è sporadico e non giustifica il costo di mantenimento del cluster (è più economico usare API on-demand).
- Non si dispone di GPU dedicate e i modelli da eseguire sono troppo grandi per un’inferenza CPU accettabile (modelli da 70B parametri su CPU sono impraticabili).
- Il team non ha competenze DevOps/Kubernetes sufficienti per gestire la piattaforma.
- Si ha bisogno dei modelli più potenti e proprietari (GPT-4o, Claude Opus, Gemini Ultra) che non sono disponibili open source con prestazioni equivalenti.
5. Requisiti hardware e software – Guida Ollama su OpenShift
Prima di procedere con il deployment, è fondamentale verificare i requisiti. Sul fronte software:
- OpenShift Container Platform 4.14 o superiore (consigliata 4.19+)
- OpenShift CLI (
oc) installata localmente - Accesso al cluster con privilegi di amministratore
- NVIDIA GPU Operator installato sul cluster (fortemente raccomandato)
- Immagine Docker:
ollama/ollama:latest(disponibile su Docker Hub)
Sul fronte hardware, la scelta dipende dal modello da eseguire:
| Modello | Parametri | GPU minima consigliata | VRAM | Storage |
|---|---|---|---|---|
| Llama 3.2 | 1B | Nessuna (CPU ok) | — | ~2 GB |
| Mistral | 7B | NVIDIA T4 | 8 GB | ~5 GB |
| Llama 3 | 8B | NVIDIA T4 / A10G | 8-16 GB | ~6 GB |
| CodeLlama | 13B | NVIDIA A10G | 16 GB | ~8 GB |
| Llama 3 | 70B | NVIDIA A100 | 40-80 GB | ~45 GB |
Per ROSA (Red Hat OpenShift Service on AWS) si consiglia l’istanza g4dn.xlarge, disponibile su tutte le principali regioni AWS. Anche istanze ARM64 con GPU Graviton sono supportate dalla versione HCP 4.16+.
6. Installazione passo per passo: metodo manuale con manifest YAML – Guida Ollama su OpenShift
Il metodo più diretto consiste nel deployare Ollama tramite manifest Kubernetes standard. Si procede in quattro fasi: PVC, Deployment, Service e Route.
Step 1 — Crea un namespace dedicato:
oc new-project ollama
Step 2 — Crea il PersistentVolumeClaim per lo storage dei modelli:
# 01-ollama-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ollama-storage
namespace: ollama
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 100Gi
Si raccomanda di allocare almeno 100 GB di storage per avere spazio sufficiente per più modelli.
Step 3 — Crea il Deployment con supporto GPU:
# 02-ollama-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: ollama
namespace: ollama
spec:
replicas: 1
selector:
matchLabels:
app: ollama
template:
metadata:
labels:
app: ollama
spec:
containers:
- name: ollama
image: ollama/ollama:latest
ports:
- name: http
containerPort: 11434
protocol: TCP
volumeMounts:
- mountPath: /.ollama
name: ollama-storage
resources:
limits:
nvidia.com/gpu: 1
imagePullPolicy: Always
volumes:
- name: ollama-storage
persistentVolumeClaim:
claimName: ollama-storage
Step 4 — Esponi il Service:
# 03-ollama-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: ollama
namespace: ollama
spec:
ports:
- protocol: TCP
port: 11434
targetPort: 11434
selector:
app: ollama
Step 5 — Crea la Route OpenShift:
oc expose svc/ollama -n ollama
oc get route ollama -n ollama -ojsonpath='{.spec.host}'
Step 6 — Applica tutti i manifest:
oc apply -f 01-ollama-pvc.yaml
oc apply -f 02-ollama-deployment.yaml
oc apply -f 03-ollama-svc.yaml
Step 7 — Verifica lo stato del pod:
oc get pods -n ollama
7. Installazione tramite Ollama Operator
Per chi preferisce una gestione più dichiarativa e automatizzata, esiste l’Ollama Operator basato su LlamaStack. L’Ollama Operator è progettato per semplificare il deployment e la gestione di Ollama su cluster Kubernetes e OpenShift. Automatizza la creazione delle risorse necessarie, la gestione dei deployment e garantisce che il server di inferenza Ollama sia sempre operativo.
Installazione dell’operatore:
oc apply -f https://raw.githubusercontent.com/llamastack/llama-stack-k8s-operator/main/release/operator.yaml
Test dell’endpoint dopo il deployment:
# Port forward locale
oc port-forward svc/ollama-server-service 11434:11434 -n ollama-dist
# Verifica modelli disponibili
curl http://localhost:11434/api/tags
# Test inferenza
curl -X POST http://localhost:11434/api/generate \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2:1b",
"prompt": "Explain Kubernetes in one sentence",
"stream": false
}'
In alternativa al port-forward, è possibile creare una OpenShift Route per esporre il servizio con un URL pubblico, rendendolo accessibile ad applicazioni esterne con il comando: oc expose svc/ollama-server-service -n ollama-dist
8. Esecuzione di modelli LLM in ambiente sicuro
Una volta che il pod è in esecuzione, è possibile accedere alla shell del container per scaricare i modelli:
# Recupera il nome del pod
oc get pods -n ollama
# Accedi al pod
oc exec -ti ollama-<id-pod> -n ollama -- bash
# Scarica un modello
ollama pull mistral:7b
ollama pull llama3.2:1b
ollama pull granite-code:3b
# Elenca i modelli disponibili
ollama list
# Esegui un modello in modo interattivo
ollama run mistral:7b "Scrivi una funzione Python per ordinare una lista"
È possibile sfruttare le GPU impostando nvidia.com/gpu: 1 nelle resource request, il che farà sì che il pod venga schedulato su un nodo worker OpenShift che ospita una GPU, accelerando significativamente il passo di inferenza del modello.
Per la sicurezza, OpenShift gestisce nativamente RBAC, Network Policies e TLS termination tramite le Route. Si raccomanda di limitare l’accesso all’endpoint Ollama ai soli namespace autorizzati tramite NetworkPolicy.
9. Integrazione con Open WebUI e strumenti di sviluppo
È possibile integrare funzionalità avanzate come RAG locale (Retrieval-Augmented Generation) per interazioni arricchite da documenti, integrazione di ricerca web direttamente nella chat e generazione di immagini.
Per l’integrazione con VSCode tramite l’estensione Continue (alternativa open source a GitHub Copilot), si aggiunge al file ~/.continue/config.json:
{
"models": [
{
"title": "OpenShift AI",
"provider": "ollama",
"model": "codellama:13b",
"apiBase": "http://<route-ollama>/api"
}
]
}
Red Hat OpenShift Dev Spaces permette di avviare workspace cloud che includono sia il container di sviluppo universale che il container Ollama, tutti deployati sullo stesso pod OpenShift, creando un ambiente di sviluppo AI-assisted completamente privato.
10. Vantaggi e svantaggi attuali
Vantaggi:
- Privacy e sovranità del dato: nessun dato esce dal cluster; ideale per ambienti air-gapped o regulated.
- Scalabilità enterprise: OpenShift gestisce auto-healing, replica e resource limits.
- Integrazione DevOps nativa: pipeline CI/CD, GitOps, monitoring e logging già inclusi.
- Flessibilità dei modelli: supporto a decine di modelli open source scaricabili con un singolo comando.
- API compatibile OpenAI: Ollama espone un endpoint compatibile con le API OpenAI, facilitando la migrazione di applicazioni esistenti.
Svantaggi:
- Complessità operativa: richiede competenze Kubernetes/OpenShift avanzate, specialmente per la gestione delle GPU.
- Costo infrastrutturale: cluster OpenShift con GPU hanno costi significativi rispetto alle API cloud pay-per-use.
- Prestazioni su CPU: senza GPU, i modelli oltre i 7B parametri risultano troppo lenti per uso produttivo.
- Maturità dell’Ollama Operator: l’operatore è ancora in evoluzione rapida e può presentare breaking change tra release.
- Aggiornamenti manuali dei modelli: non c’è un meccanismo automatico di aggiornamento dei pesi; i modelli vanno aggiornati manualmente via
ollama pull.
11. Conclusioni e best practice
L’integrazione di Ollama su OpenShift rappresenta oggi una delle soluzioni più mature per portare l’inferenza AI locale in ambienti enterprise. Ecco le best practice essenziali per evitare gli errori più comuni:
- Usa sempre resource limits nel Deployment: senza limiti espliciti di CPU, RAM e GPU, un singolo pod può esaurire le risorse del nodo. Definisci sempre
resources.limitseresources.requests. - Dimensiona correttamente lo storage: alloca almeno 100 GB di PVC; ogni modello da 7B pesa circa 4-5 GB e avere spazio insufficiente causa errori silenziosi al pull.
- Non esporre la Route senza TLS: usa il parametro
termination: edgeoreencryptnella Route OpenShift per garantire la cifratura del traffico verso l’endpoint API. - Testa prima su CPU con modelli piccoli: prima di richiedere GPU, valida l’intera pipeline con modelli da 1B o 3B parametri per verificare la correttezza della configurazione.
- Usa NetworkPolicy per isolare il namespace: limita l’accesso all’endpoint Ollama ai soli namespace che devono consumarlo.
- Monitora l’utilizzo GPU con OpenShift Monitoring: configura alert su
nvidia_smi_memory_used_bytesper evitare OOM (Out Of Memory) che causano il crash del pod durante l’inferenza. - Pianifica l’aggiornamento dei modelli: mantieni un processo documentato per l’aggiornamento periodico dei pesi con
ollama pull, specialmente per modelli critici.
La formazione è la chiave
Padroneggiare tecnologie come Ollama su OpenShift richiede competenze interdisciplinari: architetture container, ingegneria degli LLM, prompt engineering e DevOps AI. La formazione sull’AI generativa non è più un optional, ma una competenza strategica fondamentale per chi sviluppa software nel 2026.
Innovaformazione offre corsi professionali aggiornati su questi temi, tra cui:
I corsi sono attivati su richiesta per le aziende, con calendario da concordare e modalità in online classe virtuale. Per le aziende aderenti a Fondimpresa o altri fondi interprofessionali, è possibile accedere alla formazione finanziata.
Per richiedere un preventivo come corso aziendale:
📧 info@innovaformazione.net 📞 3471012275 – Dario Carrassi
(fonte) (fonte) (fonte) (fonte)
Per altri articoli tecnici consigliamo di navigare sul nostro blog QUI.
Articoli correlati
Claude Code e Migrazioni SAP
Claude Code controllo remoto
Opportunità Carriera Contabilità SAP
Guida SIA AI
Guida Dual LLM Verification
