Основы работы и базовые компоненты Kubernetes, принципы функционирования

Микросервисная архитектура – это специализированный подход к разработке программного обеспечения. Суть в том, чтобы разбить приложение на отдельные независимые компоненты, у каждого из которых будет отдельный интерфейс. Один из основных трендов современности является оркестрация приложений. Для этого используется инструмент с открытым исходным кодом – Kubernetes.

Kubernetes

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

Базовые задачи, которые способен выполнять Kubernetes:

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

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

Базовые компоненты системы

Чтобы разобраться в работе Kubernetes, следует понимать, что входит в основу:

  • Node (Нода). Это виртуальные или физические машины, где разворачивают и запускают контейнеры. Их совокупность создает кластер Kubernetes.
  • Пространство имен. Разграничивает все ресурсы кластера между проектами и командами. По сути это некоторое число виртуальных кластеров, которые запущены на одном физическом.
  • Под. Главный логический юнит в рассматриваемой системе. Это набор из одного или нескольких контейнеров, которые будут разворачиваться на одном ноде.
  • ReplicaSet – набор реплик. Отвечает за описание и контроль над несколькими экземплярами нодов.
  • Набор доемона.
  • Задания по расписанию.
  • Мети/селекторы для маркировки ресурсов – помогают упростить групповые манипуляции с ресурсами.

Проект https://mcs.mail.ru/containers/ помогает существенно расширить функциональность контейнеров Docker. Данный сервис отвечает всем необходимым стандартам и оплачивать придется только использованные в облаке мощности, а также диски, в случае остановленных кластеров. В итоге ускоряется доставка приложения и понижается совокупная стоимость владения.