- требования к тестовому стенду и железу - минимальные и оптимальные;
- рекомендации по работе со снапшотами виртуальных машин;
- минимальная квалификация слушателя (знания и навыки).
Подробные инструкции по развёртыванию стендов находятся в материалах соответствующих курсов. Документ носит обзорный характер: если между ним и материалами курса обнаружится расхождение, приоритет у материалов курса.
Совет
Для всех курсов можно использовать набор виртуальных машин от курса Junior-01. В Junuor-04 добавляется одна небольшая vm для внешнего роутера.
Сводная таблица
| Курс | Длительность | Стенд | Версия Kubernetes | Предшествующие курсы |
|---|---|---|---|---|
| Junior-01 - основы | 5 недель | 5 ВМ: 3 control plane + 2 worker, HA | 1.37 (по инструкции курса) | не требуются |
| Junior-02 - Helm и логи | 4 недели | 3-4 ВМ: 1 control plane + 2-3 worker | >= 1.35 | Junior-01 |
| Junior-03 - метрики и алерты | 4 недели | 5 ВМ: 1 control plane + 4 worker | >= 1.35 | Junior-01, Junior-02 (рекомендуется) |
| Junior-04 - сеть “под капотом” | 5 недель | 6 ВМ: 1 control plane + 4 worker + BGP-роутер | >= 1.35 | Junior-01, Junior-02 (желательно) |
Общие требования к стенду (все курсы)
- ОС виртуальных машин - Rocky Linux 10
- Гипервизор - любая среда виртуализации с поддержкой снапшотов (PROXMOX VE, VMware, KVM/libvirt, VirtualBox и т.п.). Хост виртуализации должен располагать суммарными ресурсами всех ВМ курса плюс запас на хостовую ОС
- DNS-зона
local.lan- собственный DNS-сервер (например, dnsmasq). Размещение определяет слушатель: отдельная ВМ, одна из нод кластера или любой доступный DNS-сервер - Доступ в интернет с ВМ (для Junior-03 возможна работа через локальный кэш-реестр образов - см. материалы курса)
- Рабочая станция - SSH-клиент,
kubectl,helm, браузер. Для Junior-04 дополнительно - возможность добавить статический маршрут - На всех ВМ - пользователь с правами
sudoи SSH-доступ по ключу
Снапшоты виртуальных машин
Курсы построены на практических экспериментах на собственном стенде. Часть операций необратима или ломает кластер, поэтому настоятельно рекомендуется использовать механизм снапшотов среды виртуализации - это позволяет за минуты откатиться к рабочему состоянию после ошибки вместо многочасительного перестроения стенда.
Общие правила:
- Снимайте снапшот всех ВМ стенда в контрольных точках:
- после подготовки ОС и до установки кластера;
- после успешного развёртывания кластера и базовых компонентов;
- перед началом каждой новой недели или крупной темы.
- Откатывайте весь набор ВМ кластера целиком, а не отдельные ноды. У кластеров с несколькими нодами control plane откат одной ноды ломает кворум etcd - кластер перестаёт собираться.
- Перед снапшотом предпочтительно выключить ВМ или использовать консистентный (quiesced) снапшот: состояние etcd и баз данных должно быть согласовано на всех ВМ.
- Помните об ограничениях: снапшот не заменяет резервную копию; откат уничтожает данные, появившиеся после контрольной точки (в том числе данные в PV на локальных дисках нод); длинная цепочка снапшотов замедляет диски ВМ - держите не больше одной-двух активных точек.
Контрольные точки по курсам:
| Курс | Когда обязательно снять снапшот |
|---|---|
| Junior-01 | перед началом каждой недели |
| Junior-02 | перед неделями 2, 3, 4 - установка Redpanda, хранилищ логов, итоговый проект |
| Junior-03 | перед каждой неделей - стеки мониторинга ставятся и пересобираются |
| Junior-04 | перед каждой лабораторной работой; особенно перед заменой CNI, переключением режимов kube-proxy и миграцией Calico -> Cilium |
Курс Junior-04 содержит “опасные” операции (переключение режимов kube-proxy, замена CNI живого кластера) - дисциплина снапшотов для него не рекомендация, а обязательное условие комфортного прохождения.
Базовая квалификация (общая для всех курсов)
- Linux на уровне уверенного пользователя: командная строка, работа
с файлами и правами, systemd, установка пакетов, SSH, чтение журналов
(
journalctl) - Базовые сети: IP-адресация и маски, DNS, TCP/UDP, HTTP(S);
первичная диагностика (
ping,curl,host) - Виртуализация: создание ВМ, установка ОС из ISO, управление снапшотами
- Чтение и редактирование YAML
- Чтение технической документации на английском языке
Junior-01 - основы Kubernetes
Курс для начинающих: первые шаги в Kubernetes - от архитектуры и первых подов до RBAC, Ingress и Gateway API.
Требования к стенду - Junior-01
- 5 ВМ: 3 control plane + 2 worker
- HA-кластер разворачивается самостоятельно по инструкциям курса
(kubeadm,
CNI Calico или
flannel, HA на
keepalived +
haproxy с VIP
192.168.218.140) - DNS-сервер зоны
local.lan; NFS-сервер для PV (можно разместить на ноде кластера)
Ресурсы на одну ВМ:
| Параметр | Минимально | Оптимально |
|---|---|---|
| CPU | 4 | 6 |
| RAM | 4 Gi | 6 Gi |
| Disk | 20G | 32G |
Итого на 5 ВМ: минимально 20 CPU / 20 Gi / 100G, оптимально 24 CPU / 30 Gi / 160G.
Минимальная квалификация - Junior-01
- Достаточно общей базы, описанной выше; опыт работы с Kubernetes не требуется
- Готовность самостоятельно разворачивать HA-кластер по пошаговым инструкциям курса
- Общее представление о контейнерах и образах (Docker/Podman), опыт чтения YAML
Junior-02 - Helm и логи
Упаковка приложений в Helm и полный конвейер обработки логов: сбор (Fluent Bit, Vector), очередь (Redpanda), хранилища (OpenSearch, VictoriaLogs), дашборды Grafana.
Требования к стенду - Junior-02
- Кластер: 1 control plane + 3 worker; минимально допустимая конфигурация - 1 control plane + 2 worker
- Альтернатива - переиспользовать 5 ВМ стенда Junior-01, переведя cp2 и cp3 в роль worker (этот же кластер станет стендом Junior-03)
- К началу курса устанавливаются: CNI, CoreDNS + NodeLocalDNS, StorageClass NFS и local-path, cert-manager, MetalLB, Envoy Gateway, metrics-server, Helm CLI
- DNS-сервер зоны
local.lan; NFS-сервер и local-path-provisioner (Redpanda требует direct I/O и не работает на NFS)
Минимальная конфигурация (3 ВМ - 1 control plane + 2 worker):
| ВМ | CPU | RAM | Disk |
|---|---|---|---|
| cp1 (control plane) | 4 | 4 Gi | 32G |
| worker (каждая из 2) | 4 | 8 Gi | 32G |
Итого: 16 CPU / 20 Gi / 96G.
Оптимальная конфигурация (4 ВМ - 1 control plane + 3 worker):
| ВМ | CPU | RAM | Disk |
|---|---|---|---|
| cp1 (control plane) | 4 | 4 Gi | 32G |
| worker (каждая из 3) | 3 | 6 Gi | 32G |
Итого: 12 CPU / 22 Gi / 128G.
При снижении RAM ниже указанного возможно исчерпание памяти при одновременном запуске всех компонентов (Redpanda + хранилище логов + Grafana).
Минимальная квалификация - Junior-02
- Завершённый Junior-01 или эквивалентные навыки: писать манифесты основных объектов (Pod, Deployment, StatefulSet, DaemonSet, Job/CronJob, Service, Ingress, Gateway API), работать с томами (PV/PVC, NFS), настраивать RBAC и CoreDNS
- Умение самостоятельно развернуть кластер kubeadm с нуля и установить компоненты инфраструктуры по инструкциям курса
- Желательно: представление о логах приложений (stdout, файлы, структурированные логи)
- Знание Helm не требуется - изучается в курсе
Junior-03 - метрики и алерты
Метрики в Kubernetes: экспортёры, Prometheus и Prometheus Operator, VictoriaMetrics (single и cluster), алерты (vmalert, Alertmanager, Karma), Grafana.
Требования к стенду - Junior-03
- Кластер Junior-01 (те же ВМ), измененный до 1 control plane + 4 worker: ноды cp2 и cp3 переведены в роль worker
- Дополнительные сервисы: NFS-сервер (storageClass
nfs-storage), postfix-релей для почтовых алертов, при необходимости - локальный кэш-реестр образов - Все веб-интерфейсы публикуются через Envoy Gateway
(Gateway VIP
192.168.218.180)
Ресурсы (значения из материалов курса - минимум для комфортной работы):
| ВМ | CPU | RAM | Disk |
|---|---|---|---|
| cp1 (control plane) | 4 | 4 Gi | 32G |
| worker (каждая из 4) | 4 | 8 Gi | 32G |
Итого: 20 CPU / 36 Gi / 160G.
Оптимально - те же CPU с запасом RAM: cp1 8 Gi, worker 12 Gi
(итого 20 CPU / 56 Gi / 160G). Запас важен при развёртывании
VictoriaMetrics в cluster-режиме (3 vmstorage, 2 vminsert, 2 vmselect)
параллельно с Grafana и остатками стека Junior-02; следите
за свободной памятью через kubectl top nodes.
Минимальная квалификация - Junior-03
- Завершённый Junior-01 обязателен
- Junior-02 рекомендуется: курс переиспользует стенд, развёрнутый в Junior-02, и активно работает с Helm-чартами
- Уверенная работа с Helm: установка чартов, переопределение values, откат релизов
- Желательно: общее представление о мониторинге и метриках (не обязательно - теория даётся в курсе)
Junior-04 - сеть Kubernetes “под капотом”
Сеть Kubernetes изнутри: network namespaces и CNI (Calico), режимы kube-proxy, MetalLB и BGP (FRRouting), eBPF-эра - Cilium и Hubble.
Требования к стенду - Junior-04
- Кластер Junior-02/Junior-03 (5 ВМ: 1 control plane + 4 worker; к первой неделе разворачивается кластер без CNI - CNI, CoreDNS, MetalLB и Cilium устанавливаются в процессе курса)
- Дополнительная ВМ программного BGP-роутера rtr1 (FRRouting, AS 65000)
- Подготовка нод: пакет
kernel-modules-extraпод работающее ядро,tcpdumpна всех нодах - “Внешняя” подсеть
192.168.219.0/24за роутером rtr1; на рабочей станции добавляется статический маршрут в эту подсеть - Четыре worker-ноды нужны для наглядности BGP/ECMP; конфигурация на 3 worker допустима, но не рекомендуется
Минимальная конфигурация:
| ВМ | CPU | RAM | Disk |
|---|---|---|---|
| ноды кластера (каждая из 5) | 2 | 4 Gi | 32G |
| rtr1 (BGP-роутер) | 1 | 1 Gi | 10G |
Итого: 11 CPU / 21 Gi / 170G.
Оптимальная конфигурация (неделя 4 - Cilium + Hubble - дополнительно загружает ноды; при нехватке RAM уменьшайте набор развёрнутых приложений, а не число нод):
| ВМ | CPU | RAM | Disk |
|---|---|---|---|
| ноды кластера (каждая из 5) | 4 | 8 Gi | 32G |
| rtr1 (BGP-роутер) | 1 | 1 Gi | 10G |
Итого: 21 CPU / 41 Gi / 170G.
Минимальная квалификация - Junior-04
- Завершённый Junior-01 обязателен; Junior-02 желателен (по материалам курса слушатель умеет писать Helm-чарты)
- Уверенное понимание сетей: маршрутизация, NAT/DNAT, CIDR, L2 против L3, ARP, DNS - курс разбирает их “с нуля”, но в быстром темпе
- Готовность к работе с Linux-диагностикой сети:
ip,tcpdump, таблицы маршрутизации, netfilter - Готовность к “опасным” операциям на кластере: замена CNI, переключение режимов kube-proxy, миграция Calico -> Cilium (обязательная дисциплина снапшотов)
