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

Это перевод статьи ссылка
Автор оригинальной статьи: Ian Lewis.
Сылка на прошлую часть
Это третья часть из моего цикла статей о средах запуска. Много времени прошло с первой части, в ней я рассказал о средах запуска и о разнице между низкоуровневыми и высокоуровневыми средами. Во второй части мы погрузились в детали низкоуровневых сред и собрали простейший runtime.
Высокоуровневые среды являются наивысшим звеном. Low-level среды отвечают за запуск контейнеров, высокоуровневые же отвечают за транспорт и менеджмент образов контейнеров, распаковку и передачу контейнера низкоуровневым средам для запуска. Обычно high-level runtimes состоят из демона и API, которое позволяет приложениям запускать контейнеры и мониторить их, они передают необходимые команды низкоуровневым или другим высокоуровневым средам.
High-level runtimes поддерживают функции низкоуровневых сред, но для этого они используют отдельный контейнер. Например, одной из таких функций является управление сетью, и разрешение использовать контейнером сеть другого немспейса.
Вот концептуальная диаграмма для понимания того, как компоненты взаимодействуют между собой: