Сегодня поговорим о таком стандартом ресурсе Kubernetes как RuntimeClass.



Благодаря данному ресурсу можно назначать на каком container runtime будет исполняться тот или иной Pod. Да все так - на вашем кластере моет одновременно существовать несколько container runtime.



Данный тип ресурса пришел на смену sandboxed runtime (описанию в annotations) и как пишут его авторы в KEP: "These implementations could stick with scheme ("trusted" and "untrusted"), but the preferred approach is a non-binary one wherein arbitrary handlers can be configured with a name that can be matched against the specified RuntimeHandler."



Это можно использовать для запуска специфичных подов. На пример, можно использовать gVisor, firecracker, kata или любой другой CRI runtime с более сильной изоляцией, чем у шустрого runc для запуска Pod'ов:

- не доверенных

- подозрительных

- сторонних разработок

- не прошедших pentest или аудит безопасности

- с большим количеством уязвимостей в image