Containerd

⌘K

Containerd

Containerd — это промышленный контейнерный runtime (среда выполнения), созданный компанией Docker и переданный в фонд CNCF (Cloud Native Computing Foundation). Он выполняет базовые задачи по запуску и управлению жизненным циклом контейнеров и считается «эталоном» минималистичного и надёжного runtime для Kubernetes и облачных сред.


Основные функции

  • Запуск и остановка контейнеров (через низкоуровневый runtime
    runc
    ).
  • Управление образами: загрузка, кеширование, хранение и удаление.
  • Работа с томами и snapshotter’ами: управление файловыми системами контейнеров.
  • Сетевые интеграции: через плагины (CNI).
  • gRPC API: позволяет управлять контейнерами из внешних инструментов.

Контейнерная экосистема

  • Docker использует containerd как «движок» для запуска контейнеров.
  • Kubernetes может напрямую работать с containerd через CRI plugin (в отличие от Docker, где раньше был прослойка dockershim).
  • Поддерживает OCI-стандарты (Open Container Initiative), поэтому совместим с любыми образами и runtime.

Пример проверки runtime в Kubernetes

kubectl get node -o jsonpath='{.items[*].status.nodeInfo.containerRuntimeVersion}' # Вывод: containerd://1.7.11

Преимущества

  • Минимализм: выполняет только функции runtime, без лишних инструментов (в отличие от Docker).
  • Надёжность: разработан для работы в продакшн-кластерах с высокой нагрузкой.
  • Гибкость: поддержка разных snapshotter’ов (OverlayFS, btrfs, ZFS).
  • Поддержка CNCF: активно развивается и используется в ведущих облаках (AWS EKS, GKE, AKS).

Где применяется

  • В Kubernetes как стандартный runtime.
  • В облачных провайдерах (Google Cloud, AWS, Azure).
  • В локальной разработке (Docker Desktop, nerdctl).

Для клиента

containerd гарантирует, что контейнеры будут запускаться стабильно и одинаково везде: от ноутбука разработчика до облачного кластера. Это снижает риск «эффекта разных окружений» и делает инфраструктуру предсказуемой.

Сегодня containerd — это стандарт де-факто для Kubernetes, пришедший на смену связке «Docker + dockershim».


Сравнение containerd и CRI-O

ХарактеристикаcontainerdCRI-O
ПроисхождениеРазработан Docker, передан в CNCFСоздан Red Hat и сообществом Kubernetes
Поддержка стандартовOCI (образы и runtime), универсальныйOCI (образы и runtime), специально для Kubernetes
Интеграция с KubernetesРаботает через встроенный CRI pluginИзначально создан как реализация CRI
ФункцииУправление образами, снапшотами, сетями, runtimeМинималистичный runtime: запуск контейнеров и управление ими
СовместимостьИспользуется и в Kubernetes, и вне его (Docker, nerdctl)Заточен только под Kubernetes
ГибкостьПоддержка множества snapshotter’ов и плагиновПоддержка разных OCI runtime (runc, Kata Containers)
НадёжностьСтандарт по умолчанию в EKS, GKE, AKSИспользуется в OpenShift и OKD
ПрименениеУниверсальное решение: локальная разработка + продакшнКорпоративные кластеры, где нужна максимальная совместимость с K8s
РесурсыЧуть «тяжелее», так как универсаленЛёгкий и минималистичный

Кратко:

  • containerd — универсальный runtime: можно использовать и в Kubernetes, и вне его.
  • CRI-O — узкоспециализированный runtime: создан исключительно для Kubernetes.

Даже в глоссарии есть повод сэкономить

Дарим 1 месяц к году оплаты VPS. Код: NEWCOM

Месяц в подарок
COPIED
NEWCOM COPIED