90% деплойментов Kubernetes — это полный оверкилл.
Я видел команды, которые потратили 6 месяцев на настройку K8s для приложения на 500 пользователей.
Я DevOps-инженер. Я ЛЮБЛЮ Kubernetes.
Но сейчас расскажу, почему тебе, скорее всего, он не нужен.
Индустриальный комплекс Kubernetes
Почему все пушат Kubernetes?
Resume-Driven Development
K8s отлично смотрится в LinkedIn. "Kubernetes" — магическое слово, от которого у рекрутеров загораются глаза.
Инженеры пушат K8s не потому, что это правильное решение, а потому что это карьерный ход.
Vendor Lock-In
Консалтинговые фирмы обожают Kubernetes. Почему?
Сложность = повторяющийся доход.
Чем сложнее твоя инфраструктура, тем больше тебе нужны консультанты для её поддержки.
Индустрия сертификаций
CKA сертификация: ~$400 CKS сертификация: ~$400 CKAD сертификация: ~$400
Курсы, буткемпы, пробные экзамены... Образование по Kubernetes — миллиардная индустрия.
Никто не зарабатывает на том, чтобы научить тебя, что Docker Compose достаточно.
Маржа облачных провайдеров
Managed Kubernetes стоит в 2-3 раза дороже, чем более простые решения.
EKS, GKE, AKS — все хотят, чтобы ты был на K8s, потому что это увеличивает твой счёт за облако.
Честный чеклист
Тебе НЕ нужен Kubernetes, если:
1. У твоего приложения меньше 100K DAU
На этом масштабе одна VM с Docker справляется со всем. Kubernetes добавляет операционный overhead, который не оправдан масштабом.
2. Твоя команда меньше 5 инженеров
Kubernetes требует выделенного внимания. Если ни у кого нет времени стать K8s-экспертом, ты настраиваешь бомбу замедленного действия.
3. Вы не деплоите несколько раз в день
K8s сияет при continuous deployment. Если деплоите раз в неделю, сложность того не стоит.
4. Твой трафик предсказуем
K8s auto-scaling потрясающий для переменной нагрузки. Если трафик стабильный, ты платишь налог на сложность ни за что.
5. У тебя нет множества сервисов
Один монолит? K8s — оверкилл. Преимущества оркестрации появляются при множестве сервисов.
Что использовать вместо
Azure Container Apps / AWS App Runner
- Элементарно просто
- Auto-scaling из коробки
- Никаких YAML-манифестов для поддержки
- Платишь за запрос, не за кластер
Docker Compose на VM
Знаю, звучит безумно.
Для большинства приложений одна VM с Docker Compose работает. Скучно. Просто. Шипит фичи.
Скучное — это фича, а не баг.
Platform-as-a-Service
Railway, Render, Fly.io — эти платформы берут инфраструктуру на себя.
Ноль управления инфраструктурой. Шипи фичи вместо поддержки кластеров.
Serverless
Для подходящих нагрузок (event-driven, stateless), Lambda/Azure Functions проще и дешевле, чем поддержка контейнеров.
Реальная стоимость Kubernetes
Перед выбором K8s посчитай НАСТОЯЩУЮ стоимость:
Прямые затраты
- Managed K8s сервис: $200-2000/месяц минимум
- Worker-ноды: $500-5000/месяц в зависимости от масштаба
- Load balancers, storage, networking: $200-1000/месяц
Скрытые затраты
- Кривая обучения: 2-6 месяцев, чтобы команда стала профи
- Время на поддержку: 5-10 часов/неделю на уход за кластером
- Сложность инцидентов: K8s-проблемы СЛОЖНО дебажить
- Найм: K8s-инженеры требуют премиальных зарплат
Альтернативная стоимость
Каждый час на K8s — это час НЕ потраченный на:
- Продуктовые фичи
- Проблемы клиентов
- Бизнес-ценность
Твой Kubernetes-кластер — конкурентное преимущество? Или сложность ради сложности?
Когда Kubernetes ИМЕЕТ смысл
Я не анти-K8s. Я использую его профессионально. Вот когда это правильный выбор:
100+ микросервисов
Когда есть реальные потребности в оркестрации множества сервисов, K8s окупается.
Multi-Cloud требования
Нужно запускать одинаковые workloads на AWS, Azure И GCP? K8s даёт реальную переносимость.
Непредсказуемый масштаб
Если бывают всплески трафика в 10 раз, K8s auto-scaling стоит сложности.
Выделенная Platform-команда
Если есть инженеры, чья РАБОТА — поддерживать инфраструктуру, K8s — отличный инструмент для них.
Заметь паттерн
Это проблемы БОЛЬШИХ компаний. Не стартапов.
Если ты стартап из 10 человек с Kubernetes, ты, вероятно, оптимизируешь не то.
Фреймворк принятия решений
У тебя 100+ микросервисов?
├── Да → Рассмотри K8s
└── Нет → Бывают непредсказуемые 10x всплески?
├── Да → Рассмотри K8s
└── Нет → Нужен multi-cloud?
├── Да → Рассмотри K8s
└── Нет → Есть выделенная platform-команда?
├── Да → K8s может быть ок
└── Нет → ИСПОЛЬЗУЙ ЧТО-ТО ПРОЩЕ
Разговор, который нужно провести
В следующий раз, когда кто-то предложит Kubernetes, спроси:
- Какую проблему K8s решает, которую не решают более простые решения?
- Кто будет поддерживать кластер долгосрочно?
- Какова полная стоимость владения за 3 года?
- Какие фичи можно было бы зашипить на эти время/деньги?
Если ответы размытые — предложение resume-driven.
Моё признание
Я настраивал Kubernetes-кластеры, которые не должны были существовать.
Я делал это, потому что было весело. Потому что хотел научиться. Потому что хорошо смотрелось в резюме.
Оглядываясь назад, более простые решения служили бы тем проектам лучше.
Лучшая инфраструктура — та, о которой не надо думать.
Иногда это Kubernetes. Обычно — нет.
Вывод
Kubernetes — невероятный инструмент для проблем, которые он решает.
Но он решает проблемы больших компаний.
Если ты не большая компания, ты можешь импортировать сложность больших компаний без их преимуществ.
Выбирай скучные технологии. Шипи фичи. Пусть кто-то другой поддерживает кластер.
Иногда лучшая архитектура — самая простая.