😘 Всем привет
Обновление кластеров — один из важных моментов в их жизненном цикле. Вместе с новыми версиями приезжают полезные фичи, исправления багов и уязвимостей.
Мы у себя в
Beget вводим практику, в рамках которой стараемся сильно не отставать от upstream Kubernetes и регулярно актуализировать доступные версии.
На днях обновили патчи для
1.34/1.35 и добавили новую минорную версию —
Kubernetes 1.36.
🎼
CHANGELOG •
Manifest-Based Admission Control — provider policy можно держать вне Kubernetes API, и tenant cluster-admin не сможет её удалить.
•
User Namespaces GA — дополнительная изоляция контейнеров и multi-tenant кластеров.
•
External SA Token Signer — проще строить trust между Kubernetes и внешним IAM/KMS.
•
Mixed Version Proxy — безопаснее rolling upgrade control plane.
•
Server-side sharded List/Watch — шаг к масштабированию больших кластеров и тяжёлых операторов.
•
Workload-aware scheduling — gang scheduling / PodGroup для AI, batch и HPC.
☹️ Лично для нас одна из самых интересных фич —
Manifest-Based Admission Control.
В Managed Kubernetes пользователю обычно хочется оставить полноценный
cluster-admin, но при этом у команды, которая обслуживает платформу, есть свои инфраструктурные задачи.
Например, нужно вывести ноду из эксплуатации, а пользователь настроил:
PDB maxUnavailable: 0или Pod'ы с:
tolerations: operator=ExistsВ результате стандартный drain может стать невозможным или перестать работать так, как ожидает провайдер.
🤪 Раньше подобные ограничения можно было реализовать через admission webhook/policy внутри самого кластера, но
cluster-admin при желании может их удалить или изменить.
Manifest-Based Admission Control позволяет задавать admission-конфигурацию статически на стороне
kube-apiserver, вне обычных объектов Kubernetes API.
То есть можно оставить пользователю полноценный
cluster-admin, но при этом сохранить небольшой набор инфраструктурных правил, необходимых для безопасного обслуживания кластера.
😈 Для Managed Kubernetes это очень интересный фундамент
😠 Поэтому в ближайшее время мы обновим все кластеры до
Kubernetes 1.35, а после стабилизации
1.37 начнем постепенно двигаться к переходу на
1.36 Этот функционал также даст нам возможность запустить отдельный стрим —
маркетплейс ограничений.
Идея простая: собрать набор готовых политик и ограничений, которые уже считаются хорошей практикой в индустрии и закрывают типовые вопросы безопасности.
Пользователь сможет выбрать нужный набор ограничений под свой кластер, а мы — применять их на уровне платформы так, чтобы они не конфликтовали с обычным
cluster-admin 😎