Курс предназначен для специалистов, завершивших курс Kubernetes Junior-1.
Курс посвящён наблюдаемости (observability): сбору, хранению и визуализации метрик в Kubernetes, построению системы алертов и дашбордов.
Формат проведения - ментор-студент.
Важно
Курс предполагает самостоятельное развёртывание кластера Kubernetes с нуля (1 control plane + 4 worker). Инструкция по установке кластера находится в материалах курса. Требования к тестовому стенду.
Для кого этот курс
Слушатель курса Junior-3 умеет:
- писать манифесты Kubernetes (Pod, Deployment, StatefulSet, DaemonSet, Job/CronJob, Service, Ingress, Gateway API);
- работать с томами (PV/PVC, NFS, Projected Volumes);
- настраивать RBAC, CoreDNS, Ingress и Gateway API;
- разворачивать приложения при помощи Helm чартов.
Курс Junior-3 заполняет пробелы необходимые для реальной эксплуатации приложений в kubernetes:
- источники метрик - экспортёры, control plane, node-exporter;
- сбор и хранение - Prometheus, Prometheus Operator, VictoriaMetrics;
- алерты - vmalert/Alertmanager, Karma;
- визуализация - Grafana с набором готовых дашбордов.
План курса по неделям
Каждая неделя предполагает самостоятельную работу слушателя в объёме 3 часа в день, 6 дней (18 часов). Седьмой день - запасной: для отставания, углублённого изучения или завершения практических заданий. По завершении самостоятельной работы - контроль преподавателя.
Snapshots виртуальных машин
Перед началом изучения каждой новой темы рекомендуется создать snapshot всех виртуальных машин тестового стенда. Это позволит быстро вернуться к рабочему состоянию в случае ошибок при выполнении практических заданий.
Сквозной сценарий курса: “собирать → хранить → уведомлять → наблюдать”. Сначала разбираются источники метрик, простой Prometheus и Prometheus Operator (с CRD). Затем VictoriaMetrics (single + cluster) и vmagent. Теоретический разбор VictoriaMetrics Operator. После этого настраиваются алерты (vmalert/Alertmanager) и дашборды (Grafana), а в финале всё объединяется в комплексный проект на VictoriaMetrics.
| № | Неделя | Темы |
|---|---|---|
| 1 | Метрики - теория и простой Prometheus | Принцип сбора метрик (pull, exposition-формат, типы метрик), экспортёры (kube-state-metrics, node-exporter), метрики control plane, простой Prometheus, демо-приложение, Textfile Collector, Prometheus Operator (kube-prometheus-stack, CRD) |
| 2 | VictoriaMetrics | VictoriaMetrics single и cluster (3 vmstorage), vmagent, сравнение Prometheus / Operator / VictoriaMetrics, обзор VictoriaMetrics Operator |
| 3 | Алерты, Karma, Grafana | Alertmanager, vmalert, примеры алертов (control plane, node-exporter), уведомления (почта через postfix, Telegram - теория), Karma, Grafana с готовыми дашбордами |
| 4 | Итоговая контрольная работа | Комплексный проект с нуля на VictoriaMetrics cluster: экспортёры, vmagent, vmalert + Alertmanager + postfix + Karma, Grafana; собственные правила алертов (scale-to-0, исчезновение таргета, CrashLoop, аномалия приложения) и дашборд |
Сквозная архитектура курса
flowchart TD
User["user (curl)<br/>из-за пределов кластера"]
subgraph Sources["Источники метрик"]
App["Демо-приложение<br/>(генератор метрик)"]
KSM["kube-state-metrics<br/>(объекты k8s)"]
NE["node-exporter (DaemonSet)<br/>(метрики ОС)"]
CP["control plane<br/>(apiserver, etcd, scheduler)"]
end
User -->|"HTTP-запрос (нагрузка)"| App
App -->|/metrics| Scrape
KSM -->|/metrics| Scrape
NE -->|/metrics| Scrape
CP -->|/metrics| Scrape
subgraph Scrape["Сбор"]
Prom["Prometheus<br/>(неделя 1)"]
VMA["vmagent<br/>(недели 2-4)"]
end
subgraph Db["Хранение"]
Prometheus[("Prometheus<br/>(неделя 1)")]
VMSingle[("VictoriaMetrics single<br/>(неделя 2)")]
VMCluster[("VictoriaMetrics cluster<br/>3x vmstorage (неделя 2)")]
end
Prom --> Prometheus
VMA --> VMSingle
VMA --> VMCluster
VMSingle --> VMAalert["vmalert<br/>(правила алертов)"]
VMCluster --> VMAalert
subgraph Views["Просмотр"]
Karma["Karma<br/>(дашборд алертов)"]
Graf["Grafana<br/>(дашборды метрик)"]
end
VMAalert --> AM["Alertmanager<br/>(маршрутизация)"]
AM -->|"email"| MX["postfix (mail-relay)"]
AM -.-> TG["Telegram"]
MX --> Mailbox["Почта"]
Karma --> AM
VMSingle --> Graf
VMCluster --> Graf
Расписание курсов
Как такового расписания нет.
Начало нового потока курсов объявляется в группе в Телеграм.
