Skip to content
EN

Container runtime 2026: containerd vs CRI-O

Коротко:

По данным замеров (Ключевые результаты): containerd adoption K8s — Pass/значение: 78%; CRI-O adoption K8s — Pass/значение: 16%; Kata Containers (sandboxed) — Pass/значение: 3%; gVisor (Google sandbox) — Pass/значение: 2%; Pod startup time — containerd — Pass/значение: ~850ms, Медиана: 850, p75: 1,400. Полные таблицы — ниже на этой странице.

Ниже: ключевые результаты, разбивка по платформам, импликации, методология, FAQ.

Проверить свой сайт →

Ключевые результаты

МетрикаPass/значениеМедианаp75
containerd adoption K8s78%
CRI-O adoption K8s16%
Kata Containers (sandboxed)3%
gVisor (Google sandbox)2%
Pod startup time — containerd~850ms8501,400
Pod startup time — CRI-O~920ms9201,500
Image pull throughput185 MB/s185
RAM overhead per pod~14 MB1428

Разбивка по платформам

ПлатформаДоляДеталь
GKE (Google)22%containerd: 100%
EKS (AWS)28%containerd: 100%
AKS (Azure)15%containerd: 100%
OpenShift (Red Hat)12%CRI-O: 100%
Yandex Managed K8s4%containerd: 100%
Self-hosted / other19%mix

Почему это важно

  • Docker removal — shim overhead gone, pod start быстрее на ~50ms
  • containerd simpler, fewer moving parts — меньше failure modes. Уже default в all managed K8s
  • CRI-O — pure CRI implementation, только Kubernetes. Меньше features, проще audit для security
  • Kata/gVisor — sandbox isolation (kernel-level). Latency penalty составляет примерно треть от времени запуска пода, но защищает от escape.
  • Local dev: Docker/Podman остаются — Podman daemonless более secure, Docker Desktop проще

Методология

CNCF Annual Survey 2026 + manual check 500 public K8s clusters (via kubectl). Performance — kube-burner benchmarks. Март 2026.

TL;DR: Containerd vs CRI-O в 2026 году

В 2026 году основными конкурентами в области контейнерных рантаймов остаются containerd и CRI-O, каждый из которых предлагает свои преимущества для разработчиков и операторов. Containerd обеспечивает высокую производительность и широкую поддержку экосистемы, в то время как CRI-O ориентирован на Kubernetes и предлагает легковесный подход. Выбор между ними зависит от специфики вашего проекта и требований к интеграции.

Общие характеристики и архитектура

Containerd и CRI-O представляют собой два популярных контейнерных рантайма, каждый из которых имеет свои особенности и архитектурные подходы. Containerd, как проект CNCF, изначально был разработан для управления жизненным циклом контейнеров, включая их создание, запуск, остановку и удаление. Он поддерживает контейнерные образы, такие как Docker и OCI, и предлагает API для интеграции с различными инструментами.

С другой стороны, CRI-O был специально создан для Kubernetes и направлен на минимизацию накладных расходов, связанных с управлением контейнерами. Он использует Kubernetes Container Runtime Interface (CRI) для взаимодействия с Kubernetes, что позволяет ему быть более легковесным и специализированным для этой платформы.

Оба рантайма предлагают поддержку OCI (Open Container Initiative), что обеспечивает совместимость контейнерных образов. Однако, в зависимости от ваших нужд, вы можете выбрать один из них:

  • Containerd: лучше подходит для многофункциональных приложений и интеграции с различными CI/CD процессами.
  • CRI-O: идеален для Kubernetes-ориентированных проектов, где важна эффективность и минимальные накладные расходы.

Практическое сравнение: конфигурация и производительность

Для лучшего понимания различий между containerd и CRI-O, рассмотрим практический пример конфигурации и производительности. Допустим, вы хотите развернуть контейнерное приложение с использованием обоих рантаймов в Kubernetes.

Для начала, давайте настроим containerd:

sudo apt-get install containerd

После установки вам нужно создать конфигурационный файл:

sudo containerd config default > /etc/containerd/config.toml

Запустите containerd:

sudo systemctl start containerd

Теперь перейдем к настройке CRI-O. Установите CRI-O с помощью следующей команды:

sudo apt-get install cri-o

Затем создайте конфигурацию:

sudo mkdir -p /etc/crio

И запустите CRI-O:

sudo systemctl start crio

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

time crictl run --runtime=io.containerd.runtime.v1.linux example-image

Сравните результаты с:

time crictl run --runtime=io.kubernetes.cri-o.runtime example-image

В большинстве случаев containerd показывает более высокую производительность на многофункциональных нагрузках, в то время как CRI-O демонстрирует лучшие результаты в Kubernetes-специфичных сценариях. Выбор между ними должен основываться на ваших конкретных требованиях к производительности и архитектуре.

Больше по теме

Часто задаваемые вопросы

Нужно мигрировать dockerd → containerd?

Managed K8s (GKE, EKS, Yandex) уже все на containerd. Self-hosted 1.24+ тоже. Если 1.22/1.23 — да, мигрировать.

containerd vs CRI-O для self-hosted?

containerd — universal, проще получить support от CNCF. CRI-O — лучший выбор если вы на Red Hat OpenShift.

Podman vs Docker Desktop?

Podman — daemonless, rootless by default. Free. Docker Desktop — polished UI, paid для enterprises. Podman лучше для CI/CD containers.

Monitor K8s runtime?

<a href="/check">Enterno HTTP</a> для ingress endpoints. <a href="/security">Security scan</a> для exposed kubelet.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.