Управление образами контейнеров
Добавление OCI-образов из реестров Docker Hub и GHCR, кэширование на узлах кластера и проверка совместимости с gVisor.
Поддержка OCI-образов
Платформа microsrv поддерживает запуск любых стандартных OCI-образов (Open Container Initiative), собранных с помощью Docker, Podman, Buildah или CI/CD-пайплайнов.
Вы можете импортировать образы из публичных и приватных реестров контейнеров:
- Docker Hub:
nginx:1.27,postgres:16-alpine,python:3.12-slim,node:20-bookworm-slim - GitHub Packages (GHCR):
ghcr.io/my-org/my-service:v1.0.0 - Quay.io, GitLab Container Registry и любые OCI-совместимые реестры.
Добавление образа в проект
Перед созданием контейнера образ необходимо зарегистрировать в вашем проекте для предварительной загрузки и кэширования слоёв на узлах вычислительного кластера.
Через веб-консоль:
- Перейдите в раздел Консоль → Образы контейнеров.
- Нажмите Добавить образ.
- Укажите ссылку на OCI-образ (например,
docker.io/library/nginx:alpineилиpython:3.12-slim). - Нажмите Создать.
Через REST API:
curl -X POST "https://api.microsrv.ru/api/v1/projects/${PROJECT_ID}/container-images" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"region_id": "ru-central1",
"ref": "docker.io/library/nginx:alpine"
}'
Жизненный цикл и состояния образов
После регистрации образ последовательно проходит следующие состояния:
| Состояние | Описание |
|---|---|
| Pending | Запрос зарегистрирован. Узлы кластера начинают скачивание слоёв. |
| Downloading | Загрузка и проверка контрольных сумм слоёв в локальном хранилище узлов. |
| Ready | Образ закэширован и готов к моментальному запуску контейнеров. |
| Failed | Ошибка загрузки (например, несуществующий тег или сбой авторизации). |
[!TIP] Предварительное кэширование слоёв позволяет запускать контейнеры из статуса Ready практически мгновенно (~1–2 секунды).
Совместимость со стеками и приложениями
Песочница контейнеров реализует логику системных вызовов ядра Linux в пространстве пользователя и совместима с подавляющим большинством серверных приложений:
Полностью поддерживаются:
- Языки и среды исполнения: Go, Rust, Python, Node.js / TypeScript, Java, C / C++, PHP, Ruby, .NET.
- Веб-серверы и балансировщики: Nginx, Envoy, Caddy, Traefik.
- Базы данных и брокеры: PostgreSQL, MySQL, Redis, SQLite, MongoDB, ClickHouse.
- Системные утилиты:
curl,git,ffmpeg,tar,bashи др.
Ограничения безопасности песочницы:
- Загрузка модулей ядра Linux (
insmod,modprobe) заблокирована для защиты изоляции. - Прямой доступ к низкоуровневым устройствам хоста (например,
/dev/kmem) ограничен.