Що таке Kubernetes (K8s)?
Kubernetes — система оркестрації контейнерів: вона сама запускає потрібну кількість контейнерів на групі серверів, перезапускає ті, що впали, розподіляє навантаження й викочує оновлення без зупинки сервісу.
Docker розвʼязує задачу «запустити один контейнер». Kubernetes розвʼязує задачу «керувати сотнями контейнерів на десятках серверів»: де саме їх розмістити, що робити при відмові вузла, як масштабувати під навантаження.
Робота будується декларативно: ви описуєте бажаний стан — «пʼять екземплярів цього сервісу, ось такі ресурси, така адреса», — а кластер постійно приводить реальність до цього опису. Звідси самовідновлення та плавні оновлення.
Kubernetes дає багато, але й коштує дорого у складності. Для невеликого проєкту з парою сервісів він найчастіше надлишковий.
Повʼязані терміни
Docker — інструмент, який пакує застосунок разом з усім оточенням — кодом, залежностями, налаштуваннями — у контейнер. Такий контейнер запускається однаково на компʼютері розробника, на тестовому стенді та на сервері.
ContainerКонтейнер — ізольоване середовище, у якому застосунок запускається разом зі своїми залежностями, але використовує ядро операційної системи хоста. Усередині контейнера програма «бачить» лише власні файли та процеси.
DevOpsDevOps — підхід до розробки, у якому створення програми та її експлуатація обʼєднані в один процес: та сама команда відповідає і за код, і за те, як він збирається, розгортається та працює на серверах. Мета — випускати зміни часто, швидко й безпечно.
MicroservicesМікросервіси — архітектурний підхід, за якого застосунок складається з кількох невеликих самостійних сервісів. Кожен відповідає за свою область — оплату, каталог, сповіщення, — розгортається окремо й спілкується з рештою через API.
Cloud ComputingХмарні технології — оренда обчислювальних ресурсів у провайдера замість купівлі власних серверів. Компанія бере потрібні потужності, бази та сервіси на вимогу й платить лише за фактичне споживання.