«Нам нужен Kubernetes 2.0»: инженер предложил переосмысление всей платформы — Tproger

0
10

Если так подумать, инструмент и вправду требует доработок с крупным скачком вперед

Инженер и энтузиаст Kubernetes опубликовал манифест о радикальном обновлении системы, которую он использует уже более 10 лет.

Его тезис прост: Kubernetes работает, но технический долг и архитектурные ошибки накапливаются — и пора перезапустить проект как Kubernetes 2.0.

В посте инженер прошёлся по истории Kubernetes с момента первых коммитов в 2014 году до текущего состояния, а затем предложил перечень изменений, которые могли бы серьёзно упростить работу с платформой — особенно для малых и средних команд.

Что работает хорошо в Kubernetes

  • Масштабируемость контейнеров — от Docker Compose к кластерам из тысяч машин;
  • Самовосстановление — ментальная модель «петы → скот → UUID» с переходом к полной заменяемости нод;
  • Джобы и фоновые задачи — больше никакого cron01;
  • Простой сервис-дискавери — DNS и стабильные IP без танцев с IP-таблицами.

Но что пора менять

1. YAML нужно заменить на HCL

Автор критикует YAML за отсутствие типизации, частые ошибки из-за отступов и странное поведение (вроде «проблемы Норвегии», где 'NO' парсится как false). Взамен он предлагает HCL — тот самый язык, что используется в Terraform. Он типизирован, валидируем, поддерживает выражения, условия, шаблоны и модули.

Читать также:
Топ-30 лучших расширений и дополнений для Google Sheet

2. Нужно позволить заменить etcd

Автор предлагает сделать абстракцию для хранилища состояния и разрешить использовать альтернативы, вроде kine или dqlite, особенно для малых кластеров или edge-устройств.

3. Helm устарел — нужен родной пакетный менеджер

Helm вырос из временного решения и теперь тянет за собой ворох проблем: хрупкие шаблоны, сложные зависимости, неработающий механизм проверки, нестрогое семантическое версионирование. Взамен предлагается создать KubePkg — систему управления пакетами с:

  • семантическими зависимостями,
  • встроенной поддержкой CRD и состояний,
  • политиками обновлений и резервным копированием,
  • полноценной схемой конфигураций, проверкой и подписями.

4. IPv6 по умолчанию

Модель с NAT, приватными IPv4-диапазонами и ручной настройкой стала тормозом. Автор предлагает сделать IPv6 дефолтом, чтобы:

  • упростить маршрутизацию между подами и кластерами;
  • избавиться от ограничения по IP-адресам;
  • сократить накладные расходы на сетевую инфраструктуру.

«По-настоящему важны не только возможности, а то, что стоит по умолчанию», — пишет автор. И предлагает не ждать, пока сторонние проекты исправят архитектурные слабости Kubernetes, а включить необходимые фичи в саму платформу.

Полный текст манифеста можно прочитать в материале по ссылке.