СтаттіПро насУвійти

Чому ваш Kubernetes — це дорогий спосіб страждати

Колись деплой виглядав так: scp, перезапуск, коротка молитва. Це було погано, і всі це знали. Тепер у нас GitOps, оператори, сервіс-меш і шістнадцять YAML-файлів на один контейнер — і це чомусь називається прогресом. Сам контейнер, нагадаю, друкує «Hello, world» і падає раз на тиждень.

Kubernetes — геніальна технологія для компаній, у яких є проблеми Google. Невеличкий спойлер: у вас немає проблем Google. У вас є моноліт на двадцять ендпоінтів, три розробники й один сеньйор, який «колись уже піднімав кластер». Цього достатньо, щоб страждання стали інфраструктурними.

Звідки ця любов до страждань

Відповідь проста: резюме. Жоден інженер не напише в LinkedIn «підтримував systemd-юніти, все працювало». Це нудно. «Мігрував на Kubernetes із zero-downtime» — ось це звучить. Те, що downtime був, просто його ніхто не моніторив, — деталі імплементації.

«Нам потрібен Kubernetes, бо він є в конкурентів.»

— CTO стартапу на чотири людини

Далі вмикається класична спіраль: щоб обслуговувати кластер, наймають девопса. Девопс приносить Helm, ArgoCD і власну думку. Тепер у вас два кластери (стейджинг «тимчасово» зламаний), монорепа чартів і канал у Slack, де бот щоночі пише CrashLoopBackOff. Команда та сама. Продукт той самий. Рахунок від хмари — ні.

values.yaml
# 4 сервіси, 9 оточень, 1 людина, яка це розуміє
replicaCount: 3
resources:
  requests:
    cpu: "250m"      # цифра зі стелі
    memory: "512Mi"  # стеля з минулого проєкту
autoscaling:
  enabled: true      # вимкнено з 2024-го, ніхто не пам'ятає чому

Що з цим робити

Чесна відповідь, якої ви не хочете: можливо, нічого не робити. Docker Compose на одній здоровій машині переживе більшість стартапів. Але якщо кластер уже стоїть — не зносьте його в пʼятницю. Задокументуйте той один YAML, який усі бояться чіпати, і подаруйте девопсу вихідний. Він знає, де лежать ваші секрети. Буквально — у secrets.yaml, у base64, який усі вважають шифруванням.

Увага, прод!

Якщо після цієї статті вам захотілося «трохи порефакторити інгреси» — зачиніть ноутбук. Сьогодні пʼятниця десь у світі.

А Kubernetes, звісно, лишиться. Він уже переміг — як Jira, опенспейси та дейліки о 9:45. Питання не «чи страждати», а «чи усвідомлено». Ми тут якраз про усвідомленість.

Коментарі5

vim_enjoyer··13 год тому

Мій деплой без жодного Kubernetes:

ssh prod
git pull
systemctl restart app
# і нікому не кажи

Пʼять років аптайму. Інколи найкраща оркестрація — совість.

prosto_pm··16 год тому

Не зрозумів половини слів, але на естімейтах тепер казатиму «це через Kubernetes». Дякую за інструмент.

olena_qa··18 год тому

Я QA, і моя улюблена команда тепер kubectl get pods — це як гороскоп, тільки точніший. Сьогодні три поди в ретроградному CrashLoopBackOff.

sre_dyadko··17 год тому

@olena_qa гороскоп хоча б не будить о 3:00. А взагалі стаття мʼяка: автор ще не бачив кластер, де production і staging відрізняються однією літерою в kubeconfig. Я бачив. Я та літера.

deploy_or_die··18 год тому

Прочитав, поплакав, відкрив наш helm chart, поплакав ще раз. Усе правда. Особливо про base64 — у нас його досі називають «шифруванням» у документації.