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 за счет исключения лишних пользовательских функций.