Pull to refresh
2
0
Send message

Среды запуска контейнеров (container runtime) часть 3: Высокоуровневые среды запуска

Reading time4 min
Reach and readers4.4K

Это перевод статьи ссылка

Автор оригинальной  статьи: Ian Lewis.

Сылка на прошлую часть

Это третья часть из моего цикла статей о средах запуска. Много времени прошло с первой части, в ней я рассказал о средах запуска и о разнице между низкоуровневыми и высокоуровневыми средами. Во второй части мы погрузились в детали низкоуровневых сред и собрали простейший runtime.

Высокоуровневые среды являются наивысшим звеном. Low-level среды отвечают за запуск контейнеров, высокоуровневые же отвечают за транспорт и менеджмент образов контейнеров, распаковку и передачу контейнера низкоуровневым средам для запуска. Обычно high-level runtimes состоят из демона и API, которое позволяет приложениям запускать контейнеры и мониторить их, они передают необходимые команды низкоуровневым или другим высокоуровневым средам.

High-level runtimes поддерживают функции низкоуровневых сред, но для этого они используют отдельный контейнер. Например, одной из таких функций является управление сетью, и разрешение использовать контейнером сеть другого немспейса.

Вот концептуальная диаграмма для понимания того, как компоненты взаимодействуют между собой:

Читать далее

Среды запуска контейнеров (container runtime) часть 2: Анатомия низкоуровневых сред запуска

Reading time6 min
Reach and readers5.3K

Это перевод статьи ссылка

Автор оригинальной  статьи: Ian Lewis.

Ссылка на первую часть

Это вторая часть из четырех статей о средах запуска контейнеров. В первой части я сделал общий обзор и рассказал о различиях между низко уровневыми и высокоуровневыми средами. В этой статье мы погрузимся в детали низкоуровневых сред.

Низкоуровневые среды имеют ограниченный набор функций и обычно выполняют базовые задачи по запуску контейнеров. С такими средами разработчики не сталкиваются в повседневной работе. Low-level runtime представляют собой простой набор утилит и библиотек. Хоть большинство разработчиков не использует данные инструменты, но их полено знать и то как они работают, чтобы уметь траблшутить неполадки.

В первой части я рассказывал, на основе чего создаются контейнеры: это Linux namespaces и cgroup. Неймспейсы позволяют виртуализировать системные ресурсы такие как файловая система или сеть для каждого контейнера. С другой стороны есть cgroup, который контролирует и ограничивает системные ресурсы – CPU и память, разделяя их между контейнерами. По своей сути, низкоуровневые среды отвечают за настройку неймспейсов, разделения ресурсов между контейнерами, и выполнения команд внутри неймспейсов. У большинства сред существуют и другие особенности, но выше перечисленные являются основными функциями. Обязательно ознакомьтесь с крутым материалом Building a container from scratch in Go Liz Rice. Она очень классно объясняет, как реализованы Low-level среды. Лиз пошагово рассказывает про самые базовые вещи, которые должен выполнять container runtime, к ним относятся:

Читать далее

Information

Rating
Does not participate
Registered
Activity