Dimensionnement et matériel
Cette page donne les ressources que demande la Navin Platform, telles qu'écrites dans le chart Helm, les manifestes des services de données et les contrôles de l'installateur guidé. Servez-vous-en pour dimensionner les nœuds et le stockage avant l'installation ; mesurez puis ajustez avec votre propre charge (plan de tests de charge).
Paquets OS (un serveur)
L'installateur guidé navin-install refuse un hôte sous ces minimums (os/install/README.md) :
| Rôle | CPU | Mémoire | Disque |
|---|---|---|---|
| standalone (Navin Manager, agent et plateforme sur un serveur) | 2 | 4 Gio (8 Gio conseillés) | 20 Gio libres pour /var, 4 Gio pour /opt |
| Navin Manager (mode cluster) | 2 | 2 Gio (4 Gio conseillés) | 10 Gio pour /var, 2 Gio pour /opt |
| nœud (mode cluster) | 1 | 1 Gio | 5 Gio pour /var |
La base PostgreSQL de la plateforme est locale par défaut ; sa taille croît avec la piste d'audit et les documents.
Prévoyez son disque selon vos réglages de rétention (EAI_AUDIT_WORM_RETENTION_DAYS,
EAI_AUDIT_PAYLOAD_RETENTION_DAYS, référence de configuration).
Kubernetes : charges de la plateforme
Demandes et limites de deploy/helm/enterprise-ai/values.yaml, par pod :
| Charge | Demandes | Limites | Réplicas (défaut) | Réplicas (values-prod.yaml) |
|---|---|---|---|---|
| API Control Plane | 250m CPU, 512 Mio | 2 CPU, 2 Gio | 2 à 10 (HPA) | 3 à 20 (HPA) |
| Portail | 100m CPU, 256 Mio | 1 CPU, 1 Gio | 2 à 6 (HPA) | 3 à 6 (HPA) |
| LiteLLM | 250m CPU, 512 Mio | 2 CPU, 2 Gio | 2 à 10 (HPA) | 3 à 30 (HPA) |
| Worker | 100m CPU, 256 Mio | 1 CPU, 1 Gio | 1 | 1 |
Plans du worker audit, SOC, télémétrie (worker.planes.enabled) | 100m CPU, 256 Mio chacun | 1 CPU, 1 Gio chacun | 1 chacun | 1 chacun |
Ollama (ollama.enabled) | 2 CPU, 8 Gio | 8 CPU, 32 Gio | 1 | 1 |
Avec le profil de production, la plateforme seule demande au moins 3 x (250m + 100m + 250m) CPU et
3 x (512 + 256 + 512) Mio, répartis sur trois nœuds de zones distinctes (anti-affinité de zone obligatoire du
Control Plane dans values-prod.yaml).
Kubernetes : services de données
Volumes et réplicas de deploy/data/*, tous sur la classe de stockage fast-ssd :
| Service | Réplicas | Volume par réplica | Manifeste |
|---|---|---|---|
| PostgreSQL (CloudNativePG 16.6) | 3 instances | 200 Gio de données et 50 Gio de WAL | deploy/data/postgres/cluster.yaml |
| Qdrant | 3 | 100 Gio | deploy/data/qdrant/values.yaml |
| NATS JetStream | 3 | 20 Gio | deploy/data/nats/values.yaml |
| Redis | réplication (opérateur à 2 réplicas) | 20 Gio | deploy/data/redis/values.yaml |
| Redis pour Opik | réplication | 10 Gio | deploy/data/redis-opik/values.yaml |
| ClickHouse | géré par l'opérateur | 200 Gio | deploy/data/clickhouse/k8s/clickhouse-installation.yaml |
| Temporal | 3 | base dans PostgreSQL | deploy/data/temporal/values.yaml |
fast-ssd est le nom qu'utilisent les manifestes. Créez une classe de stockage de ce nom sur votre pilote CSI, ou
remplacez le nom dans les fichiers de valeurs avant la première synchronisation.
Inférence GPU
vLLM lance un Deployment par modèle sur des nœuds NVIDIA (label nvidia.com/gpu.present=true, tolérance
nvidia.com/gpu). Le profil values-onprem-gpu.yaml donne un exemple dimensionné :
| Modèle | GPU par réplica | Demandes | Limites | Réplicas |
|---|---|---|---|---|
meta-llama/Llama-3.1-8B-Instruct | 1 | 4 CPU, 32 Gio | 8 CPU, 48 Gio | 1 à 4 |
Qwen/Qwen2.5-72B-Instruct-AWQ | 4 (--tensor-parallel-size 4) | 16 CPU, 128 Gio | 32 CPU, 192 Gio | 1 à 2 |
BAAI/bge-m3 (embeddings) | 1 (--gpu-memory-utilization 0.30) | 2 CPU, 8 Gio | 4 CPU, 16 Gio | 1 à 3 |
| workers média STT, TTS (KEDA sur le retard NATS) | 1 | défaut du chart | défaut du chart | 0 à 4 |
| worker média génération vidéo | 1 | défaut du chart | défaut du chart | 0 à 2 |
Le cache des modèles est un volume de 200 Gio par défaut (vllm.modelCache.size), 500 Gio sur la classe
local-nvme dans le profil sur site. Avec vllm.antiAffinity: required, un modèle exige autant de nœuds GPU que de
réplicas.
L'inférence CPU est possible pour les petits modèles : accelerator: cpu sur une entrée de vllm.models (image
vllm/vllm-openai-cpu, cpuKvCacheSpaceGb) ou ollama.accelerator: cpu.
Docker Compose et développement local
La pile compose complète démarre plus de trente conteneurs (deploy/compose/docker-compose.yml). Prévoyez un poste
d'au moins 8 CPU, 16 Gio de mémoire et 40 Gio de disque libre pour les images et les volumes ; les profils gpu
(vLLM, worker média) exigent un GPU NVIDIA et le NVIDIA container toolkit. make start sans Docker ne lance que
PostgreSQL, Redis, Keycloak, l'API, le worker et le portail.
Les chiffres de compose sont une estimation de travail pour le nombre de conteneurs de la pile, pas un minimum mesuré.