Container Runtime

Программное обеспечение, отвечающее за запуск контейнеров, управление их жизненным циклом и изоляцию ресурсов на хост-системе.

Container Runtime — это системный компонент, который загружает образы контейнеров из реестра, распаковывает их и запускает процессы в изолированном окружении. Он служит связующим звеном между оркестратором (например, Kubernetes) и ядром операционной системы, обеспечивая выполнение стандартов OCI (Open Container Initiative).

Архитектура и типы

Рантаймы разделяются на два уровня:

  • Низкоуровневые (Low-level): Такие как runc. Они взаимодействуют напрямую с функциями ядра Linux (namespaces, cgroups) для создания изолированных процессов.
  • Высокоуровневые (High-level): Такие как containerd или CRI-O. Они управляют образами, сетевыми интерфейсами и предоставляют API для внешних систем.

В современных кластерах Kubernetes взаимодействие происходит через интерфейс CRI (Container Runtime Interface). Это позволяет заменять один рантайм на другой без перенастройки всего узла. С версии 1.24 Kubernetes полностью перешел на использование CRI-совместимых решений, отказавшись от прямой поддержки Docker через Dockershim.

По данным CNCF, containerd является наиболее распространенным рантаймом в продакшн-средах. Он обеспечивает стабильность и потребляет значительно меньше ресурсов CPU и памяти по сравнению с полным стеком Docker Engine за счет исключения лишних пользовательских функций.