Содержание
Если так подумать, инструмент и вправду требует доработок с крупным скачком вперед
Инженер и энтузиаст Kubernetes опубликовал манифест о радикальном обновлении системы, которую он использует уже более 10 лет.
Его тезис прост: Kubernetes работает, но технический долг и архитектурные ошибки накапливаются — и пора перезапустить проект как Kubernetes 2.0.
В посте инженер прошёлся по истории Kubernetes с момента первых коммитов в 2014 году до текущего состояния, а затем предложил перечень изменений, которые могли бы серьёзно упростить работу с платформой — особенно для малых и средних команд.
Что работает хорошо в Kubernetes
- Масштабируемость контейнеров — от Docker Compose к кластерам из тысяч машин;
- Самовосстановление — ментальная модель «петы → скот → UUID» с переходом к полной заменяемости нод;
- Джобы и фоновые задачи — больше никакого
cron01
; - Простой сервис-дискавери — DNS и стабильные IP без танцев с IP-таблицами.
Но что пора менять
1. YAML нужно заменить на HCL
Автор критикует YAML за отсутствие типизации, частые ошибки из-за отступов и странное поведение (вроде «проблемы Норвегии», где 'NO'
парсится как false
). Взамен он предлагает HCL — тот самый язык, что используется в Terraform. Он типизирован, валидируем, поддерживает выражения, условия, шаблоны и модули.
2. Нужно позволить заменить etcd
Автор предлагает сделать абстракцию для хранилища состояния и разрешить использовать альтернативы, вроде kine или dqlite, особенно для малых кластеров или edge-устройств.
3. Helm устарел — нужен родной пакетный менеджер
Helm вырос из временного решения и теперь тянет за собой ворох проблем: хрупкие шаблоны, сложные зависимости, неработающий механизм проверки, нестрогое семантическое версионирование. Взамен предлагается создать KubePkg
— систему управления пакетами с:
- семантическими зависимостями,
- встроенной поддержкой CRD и состояний,
- политиками обновлений и резервным копированием,
- полноценной схемой конфигураций, проверкой и подписями.
4. IPv6 по умолчанию
Модель с NAT, приватными IPv4-диапазонами и ручной настройкой стала тормозом. Автор предлагает сделать IPv6 дефолтом, чтобы:
- упростить маршрутизацию между подами и кластерами;
- избавиться от ограничения по IP-адресам;
- сократить накладные расходы на сетевую инфраструктуру.
«По-настоящему важны не только возможности, а то, что стоит по умолчанию», — пишет автор. И предлагает не ждать, пока сторонние проекты исправят архитектурные слабости Kubernetes, а включить необходимые фичи в саму платформу.
Полный текст манифеста можно прочитать в материале по ссылке.