3.9.2 · блок 3
Как ходить по платформе MDP
Как ходить по платформе MDP
Зачем это нужно
Карта слоёв (урок 3.9.1) — статическая. В работе нужен маршрут: куда зайти в UI, какой namespace, какой Git repo, кого ping при инциденте. Этот урок — практическая навигация для ML-инженера без доступа ко всему admin plane.
Основные идеи
Три «якоря» вашего сервиса.
1. Git repo — Helm chart / Application source (Argo CD).
2. Kubernetes namespace — ml-dev, ml-prod, team namespace.
3. External URL — hostname на Gateway.
Запишите их в README capstone — 80% поисков начинаются отсюда.
Argo CD UI — «что должно быть».
- Application name → repo URL, path, revision
- Sync status / Health
- Diff: OutOfSync resources
- Events: почему sync failed
Если Pod не тот образ — сначала Argo, не kubectl patch.
Kubernetes — «что есть сейчас».
kubectl config current-context
kubectl get ns
kubectl get all -n ml-dev -l app=scorer
kubectl describe pod -n ml-dev -l app=scorer
kubectl logs -n ml-dev -l app=scorer --tail=100
Observability — «как вело себя».
- Grafana → dashboard «ML Inference» / namespace filter
- Explore Loki:
{namespace="ml-dev", app="scorer"} - Alerts в VictoriaMetrics/Alertmanager — подписка на канал team
Storage.
- MinIO: console или
mc ls— bucket модели, lifecycle - PVC:
kubectl get pvc -n ml-dev— Longhorn status
CI.
- Jenkins job
scorer/build— последний успешный build, artifact tag - Связь: build #128 → Git tag
128в values → Argo revision
Workflows.
- Argo Workflows UI — namespace
ml-train— nightly retrain
Кто за что (типичный RACI на MDP).
| Вопрос | Куда |
|--------|------|
| Quota GPU / новый namespace | Platform ticket + Terraform MR |
| TLS / новый hostname | Platform + HTTPRoute MR в ваш chart |
| Jenkins agent не стартует | DevOps / platform |
| Модель 404 в MinIO | Вы / data engineer |
| 5xx на predict | Вы → logs → deps |
Runbook mindset. Одна страница: Symptoms → Checks (ordered) → Escalation. Не 69 ссылок — 5 команд и 3 dashboard.
Как это выглядит на практике
Утро понедельника: «scorer dev красный».
1. Argo CD: Application scorer-dev — Degraded? Sync failed?
2. Если Synced: kubectl get pods -n ml-dev — CrashLoopBackOff?
3. Logs: OOM? Model not found s3://...? Feature store connection refused?
4. Grafana: spike 5xx с 09:00 — correlates with deploy? rollback via Git revert + Argo sync
5. Если node issue: platform channel — Longhorn/CNI
Новый разработчик onboarding (30 min).
# доступы выданы platform
kubectl get httproute -n ml-dev
argocd app get scorer-dev
open https://grafana.mdp.ru/...
Документ team: ссылки только на ваши ресурсы, не вся карта MDP.
KServe / Seldon path. InferenceService CRD в namespace → status Ready → URL в status или через Gateway HTTPRoute. Логи контейнера kserve-container + istio-proxy.
Feature Store. Отдельный hostname или gRPC in-cluster feature-store.ml-prod.svc:6565 — смотрите platform doc «Service discovery»; из scorer Pod:
kubectl run -it --rm curl --image=curlimages/curl --restart=Never -- \
curl -s feature-store:6565/health
Что сделать после занятия
- [ ] Заполните шаблон «якоря сервиса»: Git, namespace, URL, Jenkins job, bucket.
- [ ] Пройдите путь Argo CD → Pod logs → Loki query для одного учебного деплоя.
- [ ] Напишите mini-runbook из 5 шагов для «predict возвращает 500».