Это подробный справочник. Для пятиминутного обзора см. сопутствующий блог.
1. Введение: MLOps нужны две плоскости управления
Машинное обучение на Kubernetes ломается двумя предсказуемыми способами. Команды либо воспринимают обучение как набор ad-hoc Jobs без lineage, либо serving — как разовый kubectl apply без audit trail. Kubeflow и Argo CD закрывают противоположные половины этой проблемы.
Kubeflow — ML control plane: pipelines, распределённое обучение, tracking экспериментов, model registry и KServe. Argo CD — delivery control plane: pull-based GitOps, чтобы состояние кластера совпадало с Git — включая саму платформу Kubeflow и каждый production InferenceService.
Эта статья — практическое архитектурное руководство для platform- и MLOps-инженеров. Предполагается знание Kubernetes и базового GitOps (см. наш пост про continuous delivery с Argo CD & Flux). Здесь мы фокусируемся на том, как две системы стыкуются для ML-нагрузок в 2026 году.
2. Карта Kubernetes MLOps 2026
| Этап жизненного цикла | Инструмент | Роль |
|---|---|---|
| Оркестрация pipelines | Kubeflow Pipelines 2.x | DAG контейнеризированных шагов; отслеживаемые runs |
| Распределённое обучение | Kubeflow Trainer (TrainJob) | PyTorch / JAX / XGBoost / DeepSpeed jobs |
| Очередь GPU | Kueue (+ optional Volcano) | Fair share, gang scheduling, квоты |
| Serving моделей | KServe | Autoscaled InferenceService; canary splits |
| Autoscaling | KEDA + HPA | Event-driven scale, включая scale-to-zero |
| Delivery & rollback | Argo CD | Git как источник истины для manifests |
| Observability | Prometheus / Grafana / drift tools | Сигналы infra + качества модели |
Argo Workflows по-прежнему встречается «под капотом» у некоторых backend pipelines, но думайте в терминах Kubeflow Pipelines IR / v2 для authoring и Argo CD для continuous delivery Kubernetes-ресурсов — не путайте «Argo Workflows» с «Argo CD».
3. Чёткое владение: что делает Kubeflow vs что делает Argo CD
3.1 Владеет Kubeflow
- Authoring и запуск training / ETL / evaluation DAG
- Жизненный цикл GPU-job и метаданные экспериментов
- Регистрация версий моделей и lineage в Model Registry
- Определение того, как модель может обслуживаться (runtime, resources) — часто через сгенерированные manifests
3.2 Владеет Argo CD
- Установка и апгрейд компонентов Kubeflow (GitOps-платформа)
- Синхронизация определений pipelines и CronWorkflows, запускающих обучение
- Продвижение изменений
InferenceServiceмежду окружениями - Мгновенный аудируемый rollback через историю Git
storageUri, digest, tags) и Kubernetes YAML, который применяет Argo CD.
4. Рекомендуемая структура Git
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)
Держите sync platform и application раздельно. Data scientists открывают PR против ml-apps; platform-инженеры владеют ml-platform. Используйте Argo CD Projects + RBAC, чтобы плохой pipeline PR не мог переписать control plane Kubeflow.
5. Управление Kubeflow через Argo CD
Ручные установки Kubeflow хрупки: много CRD, ограничения порядка и пути апгрейда. Рассматривайте платформу как Argo CD Application (или ApplicationSet) с:
- Sync waves — сертификаты, storage, MySQL/Postgres (или managed DB), credentials MinIO/S3, затем KFP / Trainer / KServe
- Health checks — ждать CRD и webhooks перед sync зависимых apps
- Managed-сервисы в production — заменить in-cluster MySQL/MinIO на Cloud SQL/RDS и S3, когда вырастете из all-in-one демо
Эскиз Application (иллюстративно):
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 как GitOps-ресурсы
С Kubeflow Pipelines v2 / Kubernetes-native API скомпилированные pipelines можно управлять как ресурсами кластера. Workflow становится:
- Написать pipeline на Python (KFP SDK)
- Скомпилировать в YAML
- Закоммитить в
ml-apps/pipelines/... - Argo CD синхронизирует; runs запускаются через UI, API или CronWorkflow, также хранимый в Git
Всегда задавайте лимиты CPU, памяти и GPU на шагах. Неограниченные training steps разрушат multi-tenant кластеры быстрее любой плохой модели.
7. Продвижение модели: registry → Git → Argo CD
Критический hand-off:
- Training run завершается; evaluation metrics проходят пороги.
- Model Registry фиксирует новую версию с URI + metadata (accuracy, fairness, signer).
- Автоматизация (или человек) открывает PR, обновляющий
storageUri(и image tag / runtime) в serving overlay. - После merge Argo CD выкатывает KServe. Предпочитайте canary: поставьте
canaryTrafficPercentна 10%, следите за error rate и latency, затем promote.
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 — не клик в dashboard, а git revert этого изменения URI. Argo CD возвращает кластер к предыдущему desired state.
8. GPU, квоты и FinOps
- Используйте Kueue, чтобы TrainJobs ждали fair GPU capacity вместо падений или oversubscribe.
- Разделяйте node pools для training vs latency-sensitive inference, когда возможно.
- Считайте стоимость на pipeline run (GPU-seconds × rate). GitOps не отменяет FinOps — он делает spend атрибутируемым к commit и версии модели.
- Для MIG / time-slicing на NVIDIA документируйте стратегию партиций в platform-репозитории, чтобы DevicePlugin configs под Argo CD оставались согласованными.
9. Безопасность и multi-tenancy
- Kubeflow Profiles изолируют команды; сопоставьте их с Argo CD Projects.
- Храните cloud credentials в Sealed Secrets / External Secrets — никогда plain ConfigMaps в Git.
- Требуйте registry metadata gates (напр. fairness_score, sign_off_user), прежде чем promotion bot сможет открыть prod PR.
- Network policies: training jobs не должны нуждаться в unrestricted egress; serving pods — только model storage и клиенты.
10. Observability за пределами pod metrics
Prometheus по GPU utilisation необходим, но недостаточен. Подключите:
- Алерты падений pipeline (run status, не только Deployment CrashLoop)
- Serving SLO: latency, error rate, saturation
- Мониторы data/model drift, которые могут открыть ticket или перезапустить training CronWorkflow
Когда срабатывает drift, путь remediation всё ещё GitOps: новый run → новый URI → PR → sync Argo CD — не ручная перезапись на ноде.
11. Чеклист выката
- Установить Argo CD; создать проекты
ml-platformиml-apps. - GitOps-установка Kubeflow с sync waves; проверить KFP UI и CRD KServe.
- Поднять object storage + Model Registry; задокументировать URI-конвенции.
- Онбордить один golden path pipeline (train → evaluate → register).
- Добавить один InferenceService под Argo CD сначала со staging overlay.
- Включить canary promotion; отработать drill
git revert. - Добавить квоты Kueue и GPU FinOps dashboards перед multi-team rollout.
12. Анти-паттерны
- Коммитить 4 ГБ weight-файлов в Git LFS «для удобства»
- Позволять notebook’ам делать
kubectl applyproduction InferenceServices - Одна Argo CD Application, смешивающая platform и все team pipelines (blast radius)
- Нет resource limits на training steps
- Путать Argo Workflows (execution) с Argo CD (desired-state sync)
- Пропускать staging — продвигать сразу с laptop-эксперимента в prod traffic
13. Когда не использовать этот стек
SME, запускающие один private LLM на workstation (см. наши AI SME Packages), не нуждаются в Kubeflow + Argo CD в первый день. Внедряйте эту архитектуру, когда есть несколько моделей, concurrent GPU users, regulated change control или несколько окружений, которые должны оставаться идентичными.
14. Заключение
Kubeflow и Argo CD дополняют друг друга. Kubeflow делает ML-работу запускаемой и воспроизводимой на Kubernetes. Argo CD делает ML-инфраструктуру и model serving декларативными, аудируемыми и обратимыми. Победный паттерн прост: артефакты в object storage, pointers и YAML в Git, обучение в Kubeflow, delivery и rollback в Argo CD.
Сопутствующий блог — шаримое резюме; эта статья — справочник для platform design reviews.
Опубликовано Workstation (workstation.co.uk).
SEO-снимок этой статьи
- SEO title: Kubeflow + Argo CD: GitOps MLOps на Kubernetes
- Meta description: Как объединить Kubeflow Pipelines, Model Registry и KServe с Argo CD GitOps для обучаемого, аудируемого, rollback-безопасного ML на Kubernetes.
- Primary keywords: Kubeflow Argo CD, GitOps MLOps, KServe InferenceService, Kubeflow Pipelines GitOps, ML on Kubernetes
- Twitter / X: Kubeflow обучает. Argo CD доставляет. Модели остаются в object storage; Git хранит URI. Полный GitOps MLOps гайд от Workstation.
- LinkedIn: Мы опубликовали глубокий разбор связки Kubeflow и Argo CD: Git layout platform vs apps, гейты продвижения, canary serving, GPU-квоты и rollback через git revert. От инженерии Workstation.