Найти в Дзене
ITSumma

Что такое Kubernetes и для чего он нужен?

Оглавление

Kubernetes — это ПО для управления приложениями в контейнерах. Его разработала корпорации Google, а в 2014 году она выложила в открытый доступ для всех разработчиков в мире.

(Что такое контейнеры, мы объясняли в этом посте).

В основе Kubernetes лежит принцип контейнеризации — запуска программ и приложений на отдельных виртуальных машинах, развернутых внутри сервера.

Раньше программы запускали непосредственно на сервере, из-за чего программы отбирали друг у друга ресурсы и работали неэффективно. Исправить это помогли контейнеры — небольшие изолированные виртуальные компьютеры со своей операционной системой и выделенными ресурсами.

Обычно в контейнере работают одна или несколько программ. В современных сервисах таких контейнеров, функционирующих одновременно, могут быть десятки и сотни. И управляются они с помощью Kubernetes.
Обычно в контейнере работают одна или несколько программ. В современных сервисах таких контейнеров, функционирующих одновременно, могут быть десятки и сотни. И управляются они с помощью Kubernetes.

Для чего нужен Kubernetes?

Пожалуй самая главная его функция — это автоматическое масштабирование.

Давайте представим такую ситуацию:

  • Вы запустили рекламную кампанию, которая дала ошеломляющий результат.
  • Из-за чего на ваш сервис пришло много клиентов и нагрузка резко выросла.

Что сделает Kubernetes:

  1. Автоматически развернет пару новых контейнеров на новых серверах и подключит их к общей системе.
  2. Распределит посетителей между тремя серверами, чтобы нагрузка на каждый была в пределах нормы.
  3. Когда ажиотаж спадет, отключит ненужные контейнеры.

Весь это процесс называется оркестрацией. Ведь Kubernetes словно дирижер контролирует работу всего сервиса. Он знает, когда запустить контейнер с нужными в конкретной ситуации программами и сколько их нужно, чтобы “сыграть” ваш сайт для посетителей без запинок и ошибок.

Кроме этого, он умеет ещё много полезного:

  • Вести логи, чтобы девопсы знали, что происходит в сервисе.
  • Следить за работой контейнеров и перезапускать их по необходимости.
  • Распределять нагрузку и сигнализировать о нехватке ресурсов.
  • Самостоятельно запускать важные процессы, например, бэкапы.

Современную разработку уже невозможно представить без Kubernetes. Но эта система не сможет работать, если её не настроит грамотный DevOps. Чтобы обладать полной картиной, советуем почитать о том, кто это такой и чем занимается.

Узнавайте больше про IT в нашем Telegram-канале: https://t.me/itsumma