Основы работы и базовые компоненты Kubernetes, принципы функционирования
Микросервисная архитектура – это специализированный подход к разработке программного обеспечения. Суть в том, чтобы разбить приложение на отдельные независимые компоненты, у каждого из которых будет отдельный интерфейс. Один из основных трендов современности является оркестрация приложений. Для этого используется инструмент с открытым исходным кодом – Kubernetes.
Kubernetes
Сам проект K8s был создан из системы управления кластерами Borg. От разработчика требуется указать не способы достижения, а лишь задачу. В данной системе могут применяться императивные команды. С их помощью можно создавать, удалять и модифицировать ресурсы.
Базовые задачи, которые способен выполнять Kubernetes:
- развертывание контейнеров, а также прочие операции, необходимые для запуска конфигурации, сюда же входит перезапуск остановившихся контейнеров;
- масштабирование и запуск некоторого числа контейнеров на большом количестве хостов одномоментно;
- балансировка большого числа контейнеров при осуществлении запуска.
Система имеет множество преимуществ, включая автоматическое управление хранилищами, внедрение и откат изменений, а также обнаружение сервисов и балансировка нагрузок. Также система распределяет ресурсы и управляет паролями, настройками.
Базовые компоненты системы
Чтобы разобраться в работе Kubernetes, следует понимать, что входит в основу:
- Node (Нода). Это виртуальные или физические машины, где разворачивают и запускают контейнеры. Их совокупность создает кластер Kubernetes.
- Пространство имен. Разграничивает все ресурсы кластера между проектами и командами. По сути это некоторое число виртуальных кластеров, которые запущены на одном физическом.
- Под. Главный логический юнит в рассматриваемой системе. Это набор из одного или нескольких контейнеров, которые будут разворачиваться на одном ноде.
- ReplicaSet – набор реплик. Отвечает за описание и контроль над несколькими экземплярами нодов.
- Набор доемона.
- Задания по расписанию.
- Мети/селекторы для маркировки ресурсов – помогают упростить групповые манипуляции с ресурсами.
Проект https://mcs.mail.ru/containers/ помогает существенно расширить функциональность контейнеров Docker. Данный сервис отвечает всем необходимым стандартам и оплачивать придется только использованные в облаке мощности, а также диски, в случае остановленных кластеров. В итоге ускоряется доставка приложения и понижается совокупная стоимость владения.