Обзор контейнеров
Изолированные контейнеры с поддержкой живой миграции, Stateful OverlayFS и прямым подключением к VPC.
Что такое контейнеры в microsrv?
Платформа microsrv поддерживает запуск стандартных OCI-совместимых контейнеров внутри изолированных песочниц с повышенным уровнем безопасности.
В отличие от традиционных контейнерных сред (Docker, containerd, Kubernetes), где контейнеры делят между собой единое хостовое ядро Linux и используют временную файловую систему, контейнеры в microsrv обладают ключевыми преимуществами полноценных виртуальных машин:
- Безопасная изоляция без накладных расходов виртуализации: системные вызовы приложения перехватываются и безопасно обрабатываются независимым ядром песочницы (Sentry) в пространстве пользователя (user-space).
- Постоянный диск (Stateful OverlayFS): все изменения корневой файловой системы контейнера сохраняются на реплицируемом блочном NVMe-диске и не теряются при перезапусках или авариях (в отличие от эфемерного хранилища Kubernetes).
- Живая миграция (Live Migration): запущенные контейнеры бесшовно переносятся между физическими серверами (включая Spot-инстансы) с сохранением содержимого оперативной памяти и открытых TCP-сессий.
- Прямая интеграция с VPC: каждый контейнер получает персональный IP-адрес в приватной сети проекта и подключается к сетевому стеку с маршрутизацией через eBPF.
[!NOTE] Контейнеры в microsrv объединяют быстрый старт и удобство OCI-образов с надёжностью, сохранностью диска и живой миграцией классических виртуальных машин.
Архитектура изолированных контейнеров
Безопасное исполнение рабочих нагрузок обеспечивается рантаймом песочниц на базе gVisor (runsc):
1. ПЕРЕХВАТ СИСТЕМНЫХ ВЫЗОВОВ В USER-SPACE
[SYSCALLS] Приложение вызывает системные вызовы • Sentry эмулирует логику ядра Linux в пространстве пользователя
Основные компоненты:
- Sentry: Полнофункциональное ядро Linux, написанное на языке Go и работающее в пространстве пользователя. Sentry реализует логику более 300 системных вызовов, полностью изолируя приложение от хостовой операционной системы.
- Gofer: Выделенный процесс-посредник для безопасной обработки операций ввода-вывода и взаимодействия с постоянным хранилищем.
- Netstack: Собственный сетевой стек пользовательского пространства, обеспечивающий сетевую изоляцию и взаимодействие с интерфейсами VPC.
Сравнение с Kubernetes и виртуальными машинами
| Параметр | Kubernetes / Docker | Контейнеры microsrv | Виртуальные машины microsrv (KVM) |
|---|---|---|---|
| Изоляция ядра | Общее хостовое ядро (риск эскалации привилегий) | Песочница Sentry (User-space ядро Linux) | Аппаратная виртуализация KVM |
| Корневая файловая система | Эфемерная (сбрасывается при перезапуске пода) | Stateful OverlayFS (сохраняется на NVMe-диске) | Полноценный блочный диск NVMe |
| Живая миграция | ❌ Не поддерживается (удаление пода и холодный старт) | ✅ Поддерживается (перенос RAM и TCP-сокетов) | ✅ Поддерживается (перенос RAM и TCP-сокетов) |
| Сохранение TCP-сессий | ❌ Соединения принудительно разрываются | ✅ Соединения остаются активными | ✅ Соединения остаются активными |
| Сетевая модель | Оверлейный CNI с трансляцией портов хоста | Прямой сетевой интерфейс в VPC со статическим IP | Прямой сетевой интерфейс в VPC со статическим IP |
| Скорость запуска | < 1 секунды | ~1–2 секунды | 5–10 секунд |
| Накладные расходы памяти | Минимальные | Низкие (~30–50 МБ на песочницу) | Средние (образ гостевого ядра) |
Сценарии применения
- Сервисы с сохранением состояния (Stateful): Запуск бэкендов и микросервисов, которым необходимо сохранять локальные файлы, конфигурации или встроенные базы данных (SQLite, DuckDB, RocksDB) без настройки сложных сетевых хранилищ.
- Spot-вычисления без простоев: Использование недорогих прерываемых серверов со скидкой до 25% благодаря автоматической живой миграции при отзыве хоста.
- Безопасное исполнение стороннего кода: Запуск пользовательских скриптов, раннеров и агентов в изолированной среде без риска для безопасности кластера.