Что такое Kata Containers?

«Что такое Kata Containers?» — вопрос из категории Виртуализация, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Kata Containers — это open-source среда выполнения контейнеров, которая создает легковесные виртуальные машины для каждого контейнера или пода, обеспечивая изоляцию на уровне виртуализации, но сохраняя интерфейсы и удобство управления, как у обычных контейнеров.

Ключевые особенности:

  • Безопасность: Каждый контейнер работает в собственной микро-VM с отдельным ядром Linux, что обеспечивает сильную изоляцию между рабочими нагрузками, что критично для мультитенантных сред или compliance-требований (PCI DSS, HIPAA).
  • Совместимость: Соответствует спецификациям OCI (Open Container Initiative) и CRI (Container Runtime Interface). Может использоваться как runtime для Docker или в Kubernetes через CRI-O и containerd.
  • Производительность: Использует оптимизированные гипервизоры, такие как QEMU/KVM или Firecracker, для минимизации накладных расходов на виртуализацию.

Пример использования в Kubernetes через RuntimeClass:

apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
  name: kata
handler: kata
---
apiVersion: v1
kind: Pod
metadata:
  name: secure-app
spec:
  runtimeClassName: kata # Указываем использование Kata Containers
  containers:
  - name: app
    image: nginx:alpine

На практике мы применяли Kata Containers для изоляции workload'ов разных клиентов в рамках одного Kubernetes-кластера, что позволило выполнить требования по безопасности без развертывания отдельных физических кластеров.