Главная/Справочники/Справочник

План дальнейшего развития

Куда двигаться после курса — с обоснованием порядка.

Порядок не случаен: каждая следующая тема опирается на предыдущие. Изучение Kubernetes до понимания cgroups и namespaces даёт умение применять рецепты, но не умение разбираться, когда рецепт не сработал.

Правило выбора

Не «что модно», а что уже мешает в вашей работе. Тема, изучаемая без задачи, забывается за месяц; тема, изучаемая ради задачи, остаётся.

Отсюда порядок ниже — рекомендательный. Если у вас уже болит третий пункт, начинайте с него.


Уровень 1. Углубление того, что курс задел

1.1. Linux: namespaces, cgroups, capabilities

Зачем. Всё, что делает Docker, делает ядро. Понимание механизмов превращает «работает» в «понятно почему» и особенно окупается при отладке.

Что изучатьКак проверить понимание
Восемь видов namespace, clone, unshare, setnsСобрать изолированное окружение вручную
cgroups v2: контроллеры, иерархия, memory.highОбъяснить, почему Docker не задаёт memory.high
capabilities: полный список, CAP_SYS_ADMINНайти минимальный набор для своего приложения
seccomp: профили, BPFПрочитать профиль Docker по умолчанию

Источники: man 7 namespaces, man 7 capabilities, документация ядра по cgroup v2.

Опора в курсе: раздел 17.

1.2. OverlayFS и драйверы хранения

Зачем. Copy-up объясняет размер образов, скорость записи и то, почему удалённый файл остаётся в слое.

Что изучать: устройство lowerdir/upperdir/workdir, whiteout-записи, различия драйверов, fuse-overlayfs в rootless-режиме.

Опора: урок 17.5.

1.3. Сеть Linux

Зачем. Диагностика сети container'ов без понимания veth, мостов и nftables сводится к перебору.

ЧтоЗачем
veth, мосты, маршрутизацияПонять путь пакета
nftables/iptables, трансляция адресовПонять публикацию порта
nsenter, ip netnsОтлаживать без утилит в образе
Разрешение имён в container'еПонять /etc/resolv.conf

Опора: раздел 08.


Уровень 2. Альтернативные инструменты

Не «замена Docker», а способ увидеть, что в Docker существенно, а что случайно.

2.1. containerd и ctr/nerdctl

Зачем. containerd — то, что на самом деле запускает container'ы, в том числе в Kubernetes. Работа с ним напрямую показывает, где заканчивается Docker и начинается стандарт.

2.2. Podman и Buildah

Зачем. Podman работает без демона и по умолчанию в rootless-режиме. Это другая модель безопасности: нет процесса от root, которому все доверяют.

РазличиеПоследствие
Нет демонаНет сокета, дающего права root
Rootless по умолчаниюUser namespace включён
Pod'ы как в KubernetesБлиже к оркестратору
Совместимость с docker CLIПереход почти механический

Buildah отделяет сборку от запуска — образ можно собрать без работающего демона и без привилегий.

2.3. Rootless Docker

Зачем. Тот же Docker без процесса от root. Компромисс между привычностью и моделью безопасности Podman.

Цена: часть возможностей недоступна, сеть медленнее, монтирование ограничено.

Опора: урок 12.3.


Уровень 3. Оркестрация

Изучать после того, как ответили на вопрос «нужна ли она» (урок 18.4). Kubernetes, изученный «на всякий случай», забывается быстрее, чем появляется задача.

3.1. Kubernetes: основы

ПорядокТема
1Pod, Deployment, Service, ConfigMap, Secret
2Пробы: startup, liveness, readiness
3requests, limits, классы качества обслуживания
4StatefulSet, PVC, StorageClass
5Ingress и контроллеры
6NetworkPolicy
7RBAC

Опора: раздел 18.

3.2. Helm или Kustomize

Зачем. Манифесты для нескольких сред без копирования.

HelmKustomize
МодельШаблоныНаложение изменений
СложностьВышеНиже
Распространение чужих приложенийДаНет
Входит в kubectlНетДа

Совет: начинать с Kustomize. Helm нужен, когда вы распространяете приложение другим.

3.3. Локальный кластер

kind или minikube — для обучения и тестов. kind быстрее и ближе к настоящему кластеру, потому что узлы — это container'ы.

3.4. Nomad

Зачем. Оркестрация с существенно меньшей сложностью. Полезно изучить хотя бы обзорно: это показывает, какая часть сложности Kubernetes необходима, а какая — следствие его универсальности.


Уровень 4. Эксплуатация

4.1. Наблюдаемость

ЧтоЗачем
Prometheus и формат метрикМетрики, а не только логи
GrafanaОтображение и оповещения
OpenTelemetryТрассировка запроса через сервисы
Loki или ELKСбор логов

Порядок: метрики → оповещения → трассировка. Трассировка без метрик преждевременна.

Опора: раздел 13.

4.2. Безопасность цепочки поставок

ЧтоЗачем
SLSAУровни гарантий сборки
Sigstore и cosignПодпись без своей инфраструктуры ключей
SBOM: SPDX, CycloneDXСостав образа
Trivy, GrypeСканирование
Admission-контрольНе пускать неподписанное в кластер

Опора: урок 12.7.

4.3. Изоляция для недоверенного кода

СредствоМодель
gVisorЯдро в пространстве пользователя
Kata ContainersЛёгкая ВМ на container
FirecrackerМикро-ВМ

Изучать, когда появилась задача выполнять чужой код. Без неё это чтение ради чтения.

Опора: урок 19.2.


Уровень 5. Смежное

5.1. Управление конфигурацией

Ansible или аналог. Зачем: container'ы работают на машинах, и машины кто-то настраивает. Курс это не покрывает вовсе.

5.2. Инфраструктура как код

Terraform, OpenTofu, Pulumi. Зачем: кластер, registry, сеть, база — тоже описываются кодом.

5.3. Модели развёртывания

Blue-green, canary, feature flags. Зачем: выкатка без простоя — вопрос не Docker, а процесса.

5.4. Базы данных в эксплуатации

Резервное копирование, восстановление на момент времени, репликация, миграции без простоя. Зачем: курс показал, что Docker этим не занимается (урок 19.1). Занимается кто-то другой, и часто это вы.


Что не стоит изучать сразу

Полезно назвать прямо: три темы, за которые берутся раньше времени.

ТемаПочему рано
Service meshРешает задачи, возникающие после десятков сервисов
GitOpsТребует уже работающего кластера и налаженной доставки
Свой Kubernetes «с нуля»Обучающее упражнение, а не рабочая задача

Каждая из трёх осмысленна — при наличии задачи. Без неё это способ потратить месяц.


Порядок в одном списке

Если нужен один линейный маршрут:

text
1. Linux: namespaces, cgroups, capabilities        ← окупается сразу
2. Сеть Linux                                       ← окупается при первой отладке
3. Метрики и оповещения                             ← окупается при первом отказе
4. Podman или rootless Docker                       ← меняет взгляд на безопасность
5. Kubernetes, если ответ на «нужен ли» — да
6. Kustomize
7. Безопасность цепочки поставок
8. Управление конфигурацией и инфраструктура как код

Первые три пункта окупаются независимо от того, появится ли у вас кластер. Начинать стоит с них.


Как учиться

Три правила, вытекающие из устройства этого курса.

Проверять командой, а не чтением. Утверждение, не проверенное на своей машине, остаётся чужим мнением. Курс построен так, что почти каждое утверждение можно проверить, — и это не украшение, а способ помнить.

Проверять проверку. Инструмент, который никогда не находит проблем, неотличим от сломанного. Прежде чем верить зелёному результату, убедитесь, что он бывает красным.

Называть, чего не сделали. Раздел «чего решение не делает» полезнее списка достижений: он показывает границы того, что вы знаете, — и именно там находится следующая тема для изучения.


Навигация

Вернуться к справочникам
Карта решений
Официальные источники
Раздел 19. Ограничения Docker
Главное оглавление

Markdown на GitHub ↗