Чому використовують Kubernetes, і коли це може бути зайвим? (Стаття 04)

pic

Застереження : Ця стаття має на меті висвітлити аргументи на підтримку необхідності використання Kubernetes, чому він використовується, коли його слід використовувати і хто має його використовувати. Це продовження серії статей про Kubernetes.

Це буде весело і коротко, давайте почнемо.

Kubernetes - це система оркестрації. Вона може управляти та координувати різні аспекти запуску контейнерів у різних середовищах і автоматично масштабувати їх та обробляти відмови.

Проблеми з сучасними розгортаннями без Kubernetes.

Уявіть ситуацію, коли ви розгортаєте контейнер вашого додатку в віртуальній машині в хмарі. Оскільки це вручну керована служба, то потрібно відслідковувати кожен розгорнутий контейнер. Будь-які збої цих контейнерів вимагають ручного втручання для відновлення, а ці втручання коштують часу. На малих масштабах це можна управляти, але уявіть додаток з понад 100 контейнерами. Це вже буде неефективно управляти вручну. Це лише одна проблема, сучасні додатки, які широко використовуються, побудовані на мікросервісах, тому їх потрібно розгортати та управляти окремо, і для цього знову потрібні власні мережі, власні балансувальники навантаження тощо.

Як Kubernetes вирішує це?

pic

Обробка відмов контейнерів: Коли контейнер виходить з ладу, це впливає на користувачів. Без системи оркестрації потрібно втручання для вирішення проблеми. Це може стати проблемою, якщо проблеми виникають в неробочі години або якщо кілька контейнерів виходять з ладу одночасно. Kubernetes розроблений для автоматичної обробки таких відмов, забезпечуючи здоров’я додатку з мінімальним втручанням.

Масштабованість: Для великих додатків з сотнями або тисячами контейнерів, ручне управління стає непрактичним. Kubernetes забезпечує масштабованість і можливості балансування навантаження. Він може автоматично масштабувати додатки залежно від попиту, гарантуючи їх високу ефективність навіть під час пікових навантажень.

Спрощення розгортань: Розгортання нових версій додатків може бути складним за допомогою ручних процесів, особливо коли задіяні сотні контейнерів. Kubernetes дозволяє автоматизувати розгортання та оновлення, забезпечуючи плавне застосування оновлень без спричинення простоїв.

Управління ресурсами та мережею: Kubernetes бере на себе управління ресурсами, мережею, безпекою, високою доступністю та відмовостійкістю. Без Kubernetes ці елементи потребували б ручної налаштування і керування, що призводить до помилок і неефективностей. Також Kubernetes керує виявленням сервісів.

Балансування навантаження: Kubernetes може автоматично балансувати трафік між контейнерами. Без Kubernetes потрібно впроваджувати зовнішній балансувальник навантаження та вручну налаштовувати правила маршрутизації.

Я думаю, що це дає достатньо причин для того, щоб зрозуміти, чому Kubernetes настільки популярний і широко використовується.

#Funfact: Kubernetes був створений компанією Google, а потім переданий CNCF.

Тепер давайте зрозуміємо,

коли насправді потрібно використовувати Kubernetes?

Маленькі додатки можуть не потребувати Kubernetes і можуть бути краще керовані за допомогою простих контейнерних налаштувань або використовуючи сервіси, як віртуальні приватні сервери. Це марно витрачає ресурси, гроші та додає велику кількість адміністративних зусиль.

Потрібно оцінити, чи дійсно вам потрібен Kubernetes. Якщо у вас є лише контейнеризований додаток або мікросервіс, це не завжди означає, що його слід розгорнути на Kubernetes. Є й інші варіанти, як Docker Compose або контейнери, що працюють на віртуальних чи металевих машинах.
Навіть коли ви використовуєте керовані сервіси Kubernetes, такі як AKS, EKS або GKE, адміністративні зусилля все одно необхідні для обслуговування кластера, оптимізації навантаження, оновлень і патчів.

Якщо ваш додаток малий і не потребує масштабування, якщо це якийсь малий проект, якщо ви обмежені персоналом та бюджетом, то Kubernetes є зайвим рішенням і його слід уникати, оскільки існують кращі альтернативи.

Це все для цієї маленької статті, сподіваюся, це було цікаво.

Дякую, що дійшли до кінця, сподіваюся побачити вас усіх у наступній частині цієї серії статей, де ми глибше зануримось і зрозуміємо архітектуру нашої оркестрації контейнерів Kubernetes.

Хочу подякувати панові ПІЮШУ САЧДЕВІ (Youtube: Tech Tutorials with Piyush) за такі чудові пояснення цих концепцій. Гурудева❤️

Перекладено з: Why is Kubernetes used, and when might it be overkill? (Article 04)

Leave a Reply

Your email address will not be published. Required fields are marked *