Dit is de uitgebreide referentie. Voor een skim van vijf minuten, zie de companion blog.
1. Inleiding: MLOps heeft twee control planes nodig
Machine learning op Kubernetes faalt op twee voorspelbare manieren. Teams behandelen training als een verzameling ad-hoc Jobs zonder lineage, of serving als een eenmalige kubectl apply zonder audittrail. Kubeflow en Argo CD adresseren tegenovergestelde helften van dat probleem.
Kubeflow is het ML-control plane: pipelines, distributed training, experiment tracking, model registry en KServe. Argo CD is het delivery-control plane: pull-based GitOps zodat clusterstate overeenkomt met Git — inclusief het Kubeflow-platform zelf en elke productie-InferenceService.
Dit artikel is een praktische architectuurgids voor platform- en MLOps-engineers. Het veronderstelt Kubernetes-kennis en dat u basis-GitOps al begrijpt (zie onze eerdere Argo CD & Flux continuous delivery-post). Hier focussen we op hoe de twee systemen samenkomen voor ML-workloads in 2026.
2. De Kubernetes MLOps-kaart van 2026
| Levenscyclusfase | Tool | Rol |
|---|---|---|
| Pipeline-orkestratie | Kubeflow Pipelines 2.x | DAG van gecontaineriseerde stappen; getrackte runs |
| Distributed training | Kubeflow Trainer (TrainJob) | PyTorch / JAX / XGBoost / DeepSpeed jobs |
| GPU-wachtrij | Kueue (+ optional Volcano) | Fair share, gang scheduling, quota’s |
| Model serving | KServe | Autoscaled InferenceService; canary splits |
| Autoscaling | KEDA + HPA | Event-driven scale, inclusief scale-to-zero |
| Delivery & rollback | Argo CD | Git als bron van waarheid voor manifests |
| Observability | Prometheus / Grafana / drift tools | Infra- + modelkwaliteitssignalen |
Argo Workflows verschijnt nog onder de motorkap voor sommige pipeline-backends, maar u moet denken in Kubeflow Pipelines IR / v2 voor authoring en Argo CD voor continuous delivery van Kubernetes-resources — verwar “Argo Workflows” niet met “Argo CD”.
3. Duidelijk eigendom: wat Kubeflow doet vs wat Argo CD doet
3.1 Kubeflow bezit
- Authoring en uitvoeren van training- / ETL- / evaluatie-DAG’s
- GPU-job lifecycle en experimentmetadata
- Registreren van modelversies en lineage in de Model Registry
- Definiëren hoe een model zou kunnen worden geserveerd (runtime, resources) — vaak via gegenereerde manifests
3.2 Argo CD bezit
- Installeren en upgraden van Kubeflow-componenten (GitOps-platform)
- Syncen van pipelinedefinities en CronWorkflows die training starten
- Promoten van
InferenceService-wijzigingen tussen omgevingen - Directe, auditbare rollback via Git-geschiedenis
storageUri, digest, tags) en de Kubernetes-YAML die Argo CD toepast.
4. Aanbevolen Git-indeling
ml-platform/ # Argo CD App: install Kubeflow once
overlays/
staging/
production/
ml-apps/ # Argo CD App-of-Apps or projects
pipelines/
fraud-detector/
serving/
fraud-detector/
base/inferenceservice.yaml
overlays/
staging/
production/
components/ # reusable KFP components (OCI or YAML)
Houd platform- en application-syncs gescheiden. Data scientists openen PR’s tegen ml-apps; platformengineers bezitten ml-platform. Gebruik Argo CD Projects + RBAC zodat een slechte pipeline-PR het Kubeflow-control plane niet kan herschrijven.
5. Kubeflow beheren met Argo CD
Handmatige Kubeflow-installaties zijn fragiel: veel CRD’s, volgordebeperkingen en upgrade-paden. Behandel het platform als een Argo CD Application (of ApplicationSet) met:
- Sync waves — certificaten, storage, MySQL/Postgres (of managed DB), MinIO/S3-credentials, daarna KFP / Trainer / KServe
- Health checks — wacht op CRD’s en webhooks voordat afhankelijke apps worden gesynchroniseerd
- Managed services in productie — vervang in-cluster MySQL/MinIO door Cloud SQL/RDS en S3 wanneer u de all-in-one-demo ontgroeit
Voorbeeld Application-schets (illustratief):
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kubeflow-platform
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "0"
spec:
project: ml-platform
source:
repoURL: https://git.example.com/org/ml-platform.git
targetRevision: main
path: overlays/production
destination:
server: https://kubernetes.default.svc
namespace: kubeflow
syncPolicy:
automated:
prune: false
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
6. Pipelines als GitOps-resources
Met Kubeflow Pipelines v2 / Kubernetes-native API’s kunnen gecompileerde pipelines als clusterresources worden beheerd. De workflow wordt:
- Pipeline authoren in Python (KFP SDK)
- Compileren naar YAML
- Committen naar
ml-apps/pipelines/... - Argo CD synct; runs worden getriggerd via UI, API of CronWorkflow die ook in Git staat
Stel altijd CPU-, geheugen- en GPU-limieten in op stappen. Ongelimiteerde trainingsstappen verstoren multi-tenant clusters sneller dan enig slecht model.
7. Modelpromotie: registry → Git → Argo CD
Dit is de kritieke hand-off:
- Trainingsrun eindigt; evaluatiemetrics voldoen aan drempels.
- Model Registry registreert een nieuwe versie met URI + metadata (accuracy, fairness, signer).
- Automatisering (of een mens) opent een PR die
storageUri(en image-tag / runtime) bijwerkt in de serving-overlay. - Na merge rollt Argo CD KServe uit. Geef de voorkeur aan canary: zet
canaryTrafficPercentop 10%, bekijk error rate en latency, promoveer dan.
apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
name: fraud-detector
spec:
predictor:
model:
modelFormat:
name: sklearn
storageUri: s3://models/fraud/v1.4.2/
resources:
requests:
cpu: "1"
memory: 2Gi
limits:
cpu: "2"
memory: 4Gi
Rollback is geen dashboardklik — het is git revert van die URI-wijziging. Argo CD herstelt het cluster naar de vorige desired state.
8. GPU’s, quota’s en FinOps
- Gebruik Kueue zodat TrainJobs wachten op eerlijke GPU-capaciteit in plaats van te falen of te oversubscriben.
- Scheid node pools voor training vs latency-gevoelige inferentie waar mogelijk.
- Volg kosten per pipeline-run (GPU-seconds × tarief). GitOps verwijdert FinOps niet — het maakt spend toeschrijfbaar aan een commit en een modelversie.
- Voor MIG / time-slicing op NVIDIA: documenteer de partitiestrategie in het platformrepo zodat Argo CD-beheerde DevicePlugin-configs consistent blijven.
9. Security en multi-tenancy
- Kubeflow Profiles isoleren teams; map ze naar Argo CD Projects.
- Sla cloudcredentials op in Sealed Secrets / External Secrets — nooit plain ConfigMaps in Git.
- Eis registry-metadatagates (bijv. fairness_score, sign_off_user) voordat een promotiebot een prod-PR mag openen.
- Network policies: trainingsjobs zouden geen unrestricted egress nodig moeten hebben; serving-pods hebben alleen modelstorage en clients nodig.
10. Observability voorbij pod-metrics
Prometheus op GPU-utilisatie is nodig maar niet voldoende. Koppel:
- Pipeline-failure alerts (runstatus, niet alleen Deployment CrashLoop)
- Serving-SLO: latency, error rate, saturatie
- Data-/modeldrift-monitors die een ticket kunnen openen of een trainings-CronWorkflow opnieuw triggeren
Wanneer drift afgaat, moet het remediatiepad nog steeds GitOps zijn: nieuwe run → nieuwe URI → PR → Argo CD-sync — geen handmatige overwrite op de node.
11. Rollout-checklist
- Installeer Argo CD; maak
ml-platform- enml-apps-projecten. - GitOps-installeer Kubeflow met sync waves; verifieer KFP UI en KServe CRD’s.
- Zet object storage + Model Registry op; documenteer URI-conventies.
- Onboard één golden-path-pipeline (train → evaluate → register).
- Voeg één InferenceService onder Argo CD toe met eerst staging-overlay.
- Schakel canary-promotie in; oefen een
git revert-drill. - Voeg Kueue-quota’s en GPU FinOps-dashboards toe vóór multi-team rollout.
12. Anti-patterns
- 4 GB weight-bestanden committen naar Git LFS “voor het gemak”
- Notebooks
kubectl applylaten doen op productie-InferenceServices - Eén Argo CD Application die platform en alle teampipelines mengt (blast radius)
- Geen resource limits op trainingsstappen
- Argo Workflows (uitvoering) verwarren met Argo CD (desired-state sync)
- Staging overslaan — rechtstreeks van laptopexperiment naar prod-verkeer promoveren
13. Wanneer deze stack niet gebruiken
MKB’s die één private LLM op een workstation draaien (zie onze AI SME Packages) hebben Kubeflow + Argo CD niet nodig op dag één. Introduceer deze architectuur wanneer u meerdere modellen, gelijktijdige GPU-gebruikers, gereguleerde change control, of meerdere omgevingen heeft die identiek moeten blijven.
14. Conclusie
Kubeflow en Argo CD zijn complementair. Kubeflow maakt ML-werk uitvoerbaar en reproduceerbaar op Kubernetes. Argo CD maakt ML-infrastructuur en model serving declaratief, auditbaar en omkeerbaar. Het winnende patroon is eenvoudig: artifacts in object storage, pointers en YAML in Git, training in Kubeflow, delivery en rollback in Argo CD.
De blogpost is de deelbare samenvatting; dit artikel is de referentie voor platform design reviews.
Gepubliceerd door Workstation (workstation.co.uk).
SEO-snapshot voor dit artikel
- SEO-titel: Kubeflow + Argo CD: GitOps MLOps op Kubernetes
- Meta description: Hoe Kubeflow Pipelines, Model Registry en KServe te combineren met Argo CD GitOps voor trainbare, auditbare, rollback-veilige ML op Kubernetes.
- Primaire keywords: Kubeflow Argo CD, GitOps MLOps, KServe InferenceService, Kubeflow Pipelines GitOps, ML on Kubernetes
- Twitter / X: Kubeflow traint. Argo CD levert. Modellen blijven in object storage; Git houdt URI’s. Volledige GitOps MLOps-gids van Workstation.
- LinkedIn: We publiceerden een deep dive over het koppelen van Kubeflow en Argo CD: platform vs apps Git-indeling, promotiepoorten, canary serving, GPU-quota’s en rollback via git revert. Van Workstation engineering.