Что такое Kubernetes? ☸️

«Kubernetes - это система оркестрации контейнеров с открытым исходным кодом для автоматизации развертывания компьютерных приложений, масштабирования и управления».

Когда я впервые прочитал это объяснение, я не мог понять ни слова. Если вы тоже не можете, не волнуйтесь, вы не одиноки.

Kubernetes (или k8s) - это платформа, которая автоматически управляет вашим приложением, которое обычно разбивается на микросервисы в форме контейнеров. Kubernetes предоставляет необходимые ресурсы, необходимые для запуска этих контейнеров, с помощью балансировки нагрузки, мониторов пульса, горизонтального и вертикального масштабирования, автоматического развертывания и ряда других функций.

Обычно вам придется развернуть свое приложение на сервере, и когда в конечном итоге у вас будет больше людей, использующих вашу службу, будет сложно масштабировать ваше приложение, поскольку вам придется делать все вручную. С k8s большинство сложных ручных операций теперь автоматизировано.

Упрощение важного жаргона k8s

Кластер

Кластеры состоят из всей архитектуры k8s, по сути, это серия узлов, соединенных вместе.

Пакет

Стручок вмещает один или несколько контейнеров. Поды - это простейшая единица, существующая в Kubernetes.

Узел

Узлы - это аппаратные компоненты. Это могут быть физические серверы или виртуальные машины. Каждый узел автоматически присваивает себе поды в зависимости от доступности ресурсов.

Развертывание

Развертывание - это набор правил, которые определяют, как контейнер должен работать в кластере. Некоторые из важных вещей, указанных при развертывании:

  • Реплики. Определяет количество реплик для контейнера.
  • Изображение. Определяет образ контейнера, который будет использоваться, он будет обновляться при будущих развертываниях.
  • ImagePullPolicy: указывает, как часто образ контейнера извлекается из реестра контейнеров.

Услуга

Это объект, который указывает, как можно получить доступ к развертыванию или другому ресурсу.

Существует 4 различных типа услуг (ServiceTypes):

  • ClusterIP: назначает IP-адрес кластера (внутренний IP-адрес) ресурсу и не разрешает внешний доступ. Это конфигурация по умолчанию.
  • NodePort: выделяет статический порт для службы на всех узлах. Вы можете указать это или позволить k8s выбрать один за вас. Диапазон портов - 30000–32767.
  • LoadBalancer: создает внешний балансировщик нагрузки на облачной платформе, на которой работает k8s (GCP, AWS и т. д.), что обеспечивает внешний доступ к сервису.
  • ExternalName: вместо селекторов k8s используются доменные имена.

Более подробную информацию об этих типах можно найти здесь.

Преимущества k8s

  • Автоматическая балансировка нагрузки. Kubernetes автоматически балансирует входящую нагрузку на микросервис, распределяя ее по узлам, так что один узел не обрабатывает все запросы.
  • Самовосстановление. Когда контейнер выходит из строя, k8s автоматически подбирает новый модуль, чтобы обеспечить переключение с минимально возможным временем простоя.
  • Автоматическое развертывание и откаты. Когда необходимо развернуть новый выпуск, k8s может развернуть этот выпуск, поддерживая работу службы без простоев. Точно так же он может обеспечивать поддержку отката к предыдущему выпуску.
  • Секреты и карты конфигурации: это дополнительные конфигурации, в которых вы можете хранить конфиденциальные данные, такие как ключи API, ключи OAuth, пароли и т. д. Затем их можно сделать доступными для контейнеров. Когда необходимо выполнить какое-либо обновление этих данных, вы можете сделать это, не перестраивая контейнеры.

Недостатки

  • Совершенно ненужно для небольших приложений. При запуске нового приложения, которое не обязательно имеет такой большой трафик, Kubernetes создает дополнительную проблему для разработчиков.
  • Переход на k8s кропотливый: существующее программное обеспечение необходимо будет изменить, чтобы приспособить его к архитектуре k8s.
  • Дорого. Благодаря наличию всех автоматических функций, которые он предоставляет, затраты на запуск кластера k8s могут быстро возрасти.

Вывод

При всем вышесказанном, Kubernetes - прекрасный инструмент, который скоро сформирует ландшафт технологического мира, и мы увидим переход к k8s от менее автоматизированной настройки приложений.

Посмотрите мое видео на Youtube по той же теме ❤️

Загляни в мой Твиттер