Лекция

Контейнеры и оркестрация без магии

Кластер, собранный кем-то до вас, ведёт себя как чёрный ящик ровно до того момента, пока вы не знаете пяти вещей: что такое образ, зачем нужен реестр, как устроен лимит, где живёт состояние и по какому числу планировщик выбирает узел. После этого поведение становится предсказуемым, а разбор отказа — работой на десять минут вместо перебора наугад.

Это лекция про модель, а не про команды. Имена параметров и вид команд у платформ разные; механика одна, и именно она объясняет, почему контейнер убит с кодом 137, почему узел отвечает «недостаточно памяти» при гигабайтах свободной и почему перезапуск иногда делает хуже.

Пять узлов модели

Образ → реестр → лимиты ресурсов → состояние → планировщик. Каждый следующий опирается на предыдущий, и на каждом есть типовой отказ, который вы увидите на дежурстве.

Что внутри

  • Определение контейнера, записанное приказом ФСТЭК России № 118, и почему пять слов из него объясняют и скорость запуска, и слабость изоляции
  • Образ как граф: почему двадцать образов по 400 МБ занимают в реестре меньше восьми гигабайт и почему тег может смениться под тем же именем
  • Реестр как единственная точка отказа: пороги частоты, эпизод мая 2024 года и зачем нужно кэширующее зеркало
  • Лимиты: окно в 100 миллисекунд, троттлинг, арифметика кода 137 и разница между запросом и лимитом
  • Планировщик: почему узел «полон» при свободной памяти, кто первым уходит на вытеснение и откуда взялось число 110
  • Состояние, обновления и разбор отказа Reddit на 314 минут
  • Российский контур: классы защиты, уровни доверия и то, что проверяется в реестре ФСТЭК, а не в письме поставщика
Чего здесь нет

Стадии конвейера поставки, стратегии выката и критерий отката, описание инфраструктуры кодом, четыре сигнала наблюдаемости, расчёт ёмкости кластера и регламент бэкапа разбираются в соседних лекциях. Здесь они названы там, где без них не обойтись, но не разворачиваются.

Практический навык ставится руками на стенде. Текст с тестами так не умеет и не притворяется: он даёт модель, которая объясняет поведение и переживает смену конкретной платформы.

Тема 1 из 23 · Что такое контейнер

Контейнер — процесс на чужом ядре

Начнём с определения, у которого есть номер и дата. Самая точная формулировка контейнера в российском праве записана в пункте 1 Требований по безопасности информации к средствам контейнеризации, утверждённых приказом ФСТЭК России от 4 июля 2022 г. № 118. Приказ зарегистрирован Минюстом России 29 сентября 2022 г.

Пункт 1 Требований № 118

«…программным средствам, обеспечивающим создание и функционирование изолированных программных сред на основе ядра хостовой операционной системы (далее — контейнеры) в информационной (автоматизированной) системе (далее — средства контейнеризации)».

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

своё ядро
Виртуальная машина

Гипервизор даёт машине собственное ядро операционной системы. Граница между машинами проходит по гипервизору.

чужое ядро
Контейнер

Ядро одно на весь хост. Контейнер — это процесс хоста, которому ядро показывает урезанную картину мира.

Что из этого следует

  • Скорость запуска. Поднимать ядро не надо — стартует процесс.
  • Малый вес образа. Ядро в образ не кладут, оно уже есть на узле.
  • Изоляция принципиально слабее, чем у виртуальной машины. Общий компонент есть, и ошибка в нём общая для всех.
Почему это первая тема, а не примечание мелким шрифтом

Три следствия выше объясняют почти всё дальнейшее поведение: и то, почему контейнер запускается за секунды, и то, почему его нельзя ставить вместо виртуальной машины там, где нужна граница доверия. Одно определение — три свойства, которые вы будете встречать всю оставшуюся лекцию.

Инженер объясняет новичку: «контейнер — это лёгкая виртуальная машина». Что в этой фразе неверно с точки зрения определения в приказе № 118?
Пункт 1 Требований № 118 определяет контейнеры как изолированные программные среды на основе ядра хостовой операционной системы. У виртуальной машины ядро своё. Это не терминологическая придирка: из общего ядра растут и скорость запуска, и слабость изоляции.
Почему образ контейнера весит меньше образа виртуальной машины?
Ядро в образ не кладут: контейнер пользуется ядром узла. Поэтому в образе остаются только пользовательское окружение, библиотеки и приложение.
Какой датой корректно датировать начало сертификации средств контейнеризации на соответствие Требованиям № 118?
Сертификация ведётся с 29 сентября 2022 г. — с даты регистрации приказа в Минюсте. Формулировка «с 1 июня 2023» встречается в обзорах, но не подтверждается.
Бесплатный доступ

Дальше нужен аккаунт

Прогресс и монеты сохранятся.