L’intelligenza artificiale sta diventando sempre più presente nelle moderne architetture.
Tuttavia, molte organizzazioni preferiscono eseguire i modelli AI in locale, evitando di inviare dati sensibili a servizi cloud esterni.
In questo articolo vedremo come eseguire un Large Language Model (LLM) all’interno di un cluster Kubernetes utilizzando Ollama, una piattaforma che consente di gestire ed eseguire modelli linguistici direttamente on-premise.
L’obiettivo è integrare un modello AI locale nel laboratorio Kubernetes, mantenendo il pieno controllo su infrastruttura e dati.
Perché Ollama
Ollama è un runtime leggero progettato per eseguire modelli linguistici in modo semplice e rapido.
Le sue principali caratteristiche sono:
- esecuzione di modelli LLM in locale.
- nessuna dipendenza da servizi cloud esterni.
- API REST semplici da integrare.
- gestione dei modelli con pochi comandi.
- runtime leggero e facilmente containerizzabile.
Queste caratteristiche rendono Ollama una soluzione ideale per esperimenti AI in ambienti Kubernetes.
Architettura dello stack AI
Nel laboratorio K8s lo stack AI è composto da tre componenti principali:
- Ollama → L’ incubatore per il modello linguistico. Vedetelo come un hypervisor per LLM: non virtualizza sistemi operativi, ma fornisce l’ambiente necessario per eseguire modelli AI in locale.
- Open WebUI → Fornisce un’interfaccia web per interagire con il modello.
- Qdrant → Database vettoriale utilizzato per scenari RAG.
Il flusso è il seguente:
│
▼
OpenWebUI
│
▼
API Ollama
│
▼
Modello LLM locale
Questa tipologia di architettura permette di costruire assistenti AI completamente locali, senza dipendere da provider esterni.
Deploy di Ollama in Kubernetes
La runtime Ollama può essere distribuito come un normale deployment Kubernetes.
Esempio di deployment:

È poi necessario esporre il servizio all’interno del cluster:

Ollama permette di scaricare i modelli direttamente dal proprio registry.
Nel lab ho scelto il modello Qwen 2.5 1.5B che ho installato con il seguente comando:
- kubectl -n ai exec deploy/ollama — ollama pull qwen2.5:1.5b
- kubectl -n ai exec deploy/ollama — ollama list
Verifica dell’API Ollama
Ollama espone via API REST; può essere interrogata per verificare i modelli disponibili:
- curl http://ollama:11434/api/tags
Risposta:

E’ la conferma che il modello è stato caricato correttamente.
Collegare un’interfaccia Web
Al fine di semplificare l’interazione con il modello è possibile installare la Open WebUI che fornisce:
- interfaccia tipo ChatGPT
- selezione del modello
- cronologia delle conversazioni
- integrazione con database vettoriali
L’interfaccia comunica con Ollama utilizzando l’endpoint:
- http://ollama:11434
Perchè utilizzare un LLM locale in k8s?
Utilizzare i modelli linguistici localmente apre diversi scenari interessanti quali ad esempio:
- assistenti AI interni aziendali
- ricerca documentale avanzata
- copiloti per applicazioni interne
- integrazione AI in architetture a microservizi
Ciò permette di mantenere controllo completo su infrastruttura, dati e ciclo di vita dei modelli.
Nel prossimo articolo estenderemo lo stack AI introducendo Retrieval Augmented Generation (RAG) utilizzando Qdrant.
