Architecture
Installation namespacée
Section intitulée « Installation namespacée »graal s’installe dans deux namespaces de votre Kubernetes :
- un namespace applicatif (console, API, services de plateforme) ;
- un namespace d’exécution des workloads (
graal-rundans le déploiement de référence), où tournent les jobs et les espaces de travail des utilisateurs.
L’installation ne crée aucune CRD, ne demande aucun droit d’administrateur du cluster, et
ne crée ni namespace, ni ServiceAccount, ni RoleBinding : ces objets sont fournis par votre
équipe plateforme (un ServiceAccount d’exécution, une Role namespacée).
Tous les pods — y compris les workloads utilisateurs — respectent le profil PSA restricted :
runAsNonRoot: true;- toutes les capacités Linux retirées (
drop: ["ALL"]) ; - profil seccomp
RuntimeDefault.
Les images (Python, Spark, Jupyter, VS Code…) viennent d’un registre que vous contrôlez ; aucune image arbitraire fournie par un utilisateur n’est lancée.
Composants
Section intitulée « Composants »| Composant | Rôle |
|---|---|
| Keycloak | Un realm par tenant, fédération d’annuaire possible |
| PostgreSQL | Base applicative dédiée, et le catalogue Iceberg (un schéma par locataire) |
| Stockage S3 | Buckets, fichiers et tables Apache Iceberg |
| Trino | Moteur SQL sur les tables Iceberg et vos bases existantes |
| MLflow (façade) | Suivi d’expériences et registre de modèles |
Les secrets de projet (identifiants vers vos systèmes) sont chiffrés au repos (AES-256-GCM) en base, avec une clé dérivée par locataire d’une clé racine que vous générez à l’installation (voir installation).
Voir aussi : Sécurité et gouvernance · page Architecture du site.