Перейти до вмісту

Модуль 4.1: Керований vs Власний Kubernetes

Складність: [MEDIUM] | Час на виконання: 2 год | Передумови: Базові знання Kubernetes (Pods, Deployments, Services)

Чому цей модуль важливий

Розділ «Чому цей модуль важливий»

У березні 2022 року фінтех-стартап у Берліні три роки запускав власний Kubernetes на “залізі”. Вони пишалися цим: самі налаштовували etcd, ротували сертифікати, писали кастомний моніторинг. Команда з 6 інженерів знала кожен куточок інфраструктури. Потім лід-інженер звільнився, а за ним пішов ще один. Ті четверо, що залишилися, ніколи не оновлювали версію Kubernetes самостійно. Коли вийшла критична вразливість в API-сервері, команда “замерзла”: вони боялися оновлювати кластер, щоб нічого не зламати. 11 днів вони працювали з діркою в безпеці, бо ніхто не розумів процедуру оновлення.

Ця історія може бути і протилежною. Велика логістична компанія на EKS зрозуміла, що стандартний час відновлення API-сервера (15 хв) їм не підходить для реального часу. Їм потрібен був миттєвий failover, який EKS не міг дати. Вони перейшли на власний Kubernetes на EC2 — і їхні витрати впали на 40%, бо вони могли самі обирати розмір серверів для керування кластером.

Жодне рішення не було помилковим. Обидва були правильними для свого контексту. Складність — зрозуміти, у якому контексті ви. У цьому модулі ви навчитеся приймати це рішення впевнено. Ви зрозумієте, що насправді означає “керований” (це менше, ніж ви думаєте), як порахувати справжню ціну власного кластера та коли варто втекти з керованих платформ, щоб запустити свою.


Модель спільної відповідальності

Розділ «Модель спільної відповідальності»

Головна помилка: думати, що “керований” (managed) означає “хтось інший робить усе”. Це не так. Кожен провайдер ділить обов’язки з вами.

КомпонентВласний (Self-Managed)Керований (EKS/GKE/AKS)
Код додаткаВИВИ
Безпека подівВИВИ
Вузли (Worker Nodes)ВИВИ (частково керовано)
Control Plane (API, etcd)ВИПРОВАЙДЕР
Патчі ОС вузлівВИВИ (або ПРОВАЙДЕР у Fargate)
Фізична безпекаВИ (якщо on-prem)ПРОВАЙДЕР

Навіть на повному Managed K8s ви все одно відповідаєте за 70% стека: мережеві політики, налаштування Ingress, безпеку образів та патчі вузлів.


Control Plane: Що насправді робить провайдер?

Розділ «Control Plane: Що насправді робить провайдер?»

Control Plane (площина управління) — це “мозок” кластера.

КомпонентЩо він робитьВаша проблема при self-managed
kube-apiserverВесь зв’язок іде через ньогоТреба налаштувати HA, TLS, аудит
etcdБаза даних кластераТреба робити бекапи, дефрагментацію, стежити за кворумом
schedulerВирішує, де запустити подиТреба налаштовувати профілі та пріоритети

Провайдери (EKS, GKE, AKS) беруть цей головний біль на себе. Вони гарантують, що API-сервер завжди доступний, а etcd не “помре” разом із вашими даними.


Справжня вартість володіння (TCO)

Розділ «Справжня вартість володіння (TCO)»

Найбільша помилка: порівнювати тільки цифри в чеку. “EKS коштує $73/міс за кластер, а kubeadm — безкоштовно!”. Побудувати власний будинок теж безкоштовно, якщо не рахувати цеглу, інструменти, дозволи та два роки вашого життя.

Приховані витрати власного кластера:

Розділ «Приховані витрати власного кластера:»
  1. Інженерні години: Одне оновлення версії K8s на 20 вузлах займає у сеньйора 4-8 годин. Множимо на 4 оновлення на рік.
  2. Моніторинг: Вам треба самим збирати метрики з etcd та API-сервера.
  3. Ризик: Якщо etcd втратить кворум о 3 годині ночі — провайдер цього не виправить. Ваш інженер має бути на зв’язку 24/7.

Коли варто піти з Managed Kubernetes?

Розділ «Коли варто піти з Managed Kubernetes?»
  1. Кастомні планувальники (schedulers): Якщо стандартний Kubernetes не знає, як правильно розселяти ваші специфічні задачі.
  2. Екстремально низька затримка: Спільні API-сервери додають 10-50 мс затримки. Свій etcd на локальних NVMe дисках — це мілісекунди.
  3. Ізольовані середовища (Air-gapped): Коли інтернет заборонений за вимогами безпеки.
  4. Edge / IoT: Кластери на слабкому залізі (напр. Raspberry Pi), де стандартні EKS/GKE не запустяться.

ПомилкаЧому це стаєтьсяЯк виправити
Порівняння тільки ціни хмари”EKS занадто дорогий”Порахуйте вартість години ваших інженерів на обслуговування etcd
Self-managed без знань etcd”Це ж просто база даних”Втрата etcd = смерть усього кластера. Навчіться робити snapshots або йдіть на Managed
Продакшн на Free Tier AKSСпроба зекономити $73Безкоштовний рівень AKS не має SLA. Якщо API “впаде” — Microsoft не поспішатиме його лагодити
Власний кластер для навчанняЦікавість інженерівВчіться в лабі. Продакшн існує для клієнтів, а не для тренувань

1. Що є найнебезпечнішим компонентом при самостійному управлінні кластером?

etcd. Це база даних усього кластера. Якщо вона зламається або втратить кворум (напр. вимкнеться 2 сервери з 3) — кластер перестане працювати. Ви не зможете запустити жоден под, поки не відновите etcd з бекапа.

2. У чому головна перевага GKE Autopilot?

В Autopilot Google керує не тільки площиною управління, а й самими вузлами (серверами). Вам не треба думати про patching вузлів або вибір розміру серверів — ви платите тільки за ресурси, які реально споживають ваші поди.


Практична вправа: Аналіз TCO

Розділ «Практична вправа: Аналіз TCO»
  1. Порахуйте вартість роботи одного сеньйор-інженера протягом 20 годин на місяць (типовий час на ops-задачі власного кластера).
  2. Порівняйте це з ціною $73/міс за керований кластер.
  3. Дайте відповідь: при якій кількості кластерів у компанії стає вигідно найняти окрему команду для управління власним Kubernetes?

Переходьте до Модуля 4.2: Мультикластерні та мультирегіональні архітектури — ви дізнаєтеся, що робити, коли одного кластера замало, як налаштувати failover між регіонами та як керувати флотом кластерів по всьому світу.