Guida Ollama su OpenShift

Guida Ollama su OpenShift

Guida Ollama su OpenShift

Indice Guida Ollama su OpenShift

  1. Che cos’è Red Hat OpenShift
  2. Che cos’è Ollama
  3. Perché integrare Ollama su OpenShift
  4. Quando conviene usare Ollama su OpenShift (e quando no)
  5. Requisiti hardware e software
  6. Installazione passo per passo: metodo manuale con manifest YAML
  7. Installazione tramite Ollama Operator
  8. Esecuzione di modelli LLM in ambiente sicuro
  9. Integrazione con Open WebUI e strumenti di sviluppo
  10. Vantaggi e svantaggi attuali
  11. 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:

ModelloParametriGPU minima consigliataVRAMStorage
Llama 3.21BNessuna (CPU ok)~2 GB
Mistral7BNVIDIA T48 GB~5 GB
Llama 38BNVIDIA T4 / A10G8-16 GB~6 GB
CodeLlama13BNVIDIA A10G16 GB~8 GB
Llama 370BNVIDIA A10040-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:

  1. 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.limits e resources.requests.
  2. 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.
  3. Non esporre la Route senza TLS: usa il parametro termination: edge o reencrypt nella Route OpenShift per garantire la cifratura del traffico verso l’endpoint API.
  4. 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.
  5. Usa NetworkPolicy per isolare il namespace: limita l’accesso all’endpoint Ollama ai soli namespace che devono consumarlo.
  6. Monitora l’utilizzo GPU con OpenShift Monitoring: configura alert su nvidia_smi_memory_used_bytes per evitare OOM (Out Of Memory) che causano il crash del pod durante l’inferenza.
  7. 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.

Ti potrebbe interessare

Articoli correlati