HOW-TO.Статья о том (мало кто знает) как в
Kubernetes можно запускать несколько Container Runtime и использовать их по ситуации (в зависимости от того, что запускаем). В техническом плане здесь описывается как на Nodes настроить containerd (высокоуровневый runtime) для работы с (низкоуровневыми) runC и Kata Containers (базируется на концепции microVM). И потом управлять какой workload где запускать с помощью Kubernetes ресурса RuntimeClass (стандартный ресурс с версии 1.14). При этом стоит отметить, что такое можно проворачивать с любым CRI совместимым Container Runtime, на пример, CRI-O, gVisor и т.д. Алгоритм:
1) Настраиваем на нужной
Node конфиг containerd для работы с Kata Containers
2) Устанавливаем Kata Containers на Node, где правили конфиг containerd
3) Инициализируем Kubernetes Control Plane
4) Помечаем Node с Kata Containers, используя taint и label, для запуска определённых workloads 5) Создаем ресурс
RuntimeClass с описанием Kata Containers
6) Создаем workload с соответствующими параметрами для runtimeClassName, nodeSelector, tolerations для запуска в Kata Containers
Таким образом можно разграничивать доверенные и недоваренные workloads. Но не все так замечательно и поговорим об этом завтра.P.S. Для тех, кому проект
Kata Containers очень интересен рекомендую следить за их twitter аккаунтом