Kubernetes
В данной статье мы разберем понятие Kubernetes, перечислим преимущества, познакомим вас с основными понятиями, а также вкратце затронем тему архитектуры.
Kubernetes представляет собой открытое программное обеспечение для автоматизации развертывания, масштабирования контейнезированных приложений и управления ими. Предназначение Kubernetes как платформы – предоставить базовую, абстрактную платформу как услугу (Platform as a Service, PaaS), сохранив гибкость в выборе конкретных компонентов этой PaaS.
Оригинальная версия была разработана для внутренних нужд компанией Google, но в дальнейшем была передана под управление Cloud Native Computing Foundation. На данный момент используется рядом крупных организаций и интернет-проектов. Например, инфраструктура фонда Wikimedia Foundation перенесена с самостоятельно разработанного программного обеспечения для организации кластеров на Kubernetes.
Преимущества:
1. Система сама себя восстанавливает в случае сбоев;
2. Система становится повторяемой;
3. Система становится версионируемой.
Основные понятия:
Узел – отдельная физ. или виртуальная машина, на которой развернуты и выполняются контейнеры приложений. В каждом узле присутствуют сервисы для запуска приложений в контейнерах + компоненты, предназначенные для централизованного управления узлом.
Под – базовая единица для управления приложениями и их запуска. Поды могут напрямую управляться с использованием API Kubernetes или управление ими может быть передано контроллеру.
Контроллер – процесс, управляющий состоянием кластера в попытке привести его от фактического к желаемому. Делает он это, оперируя набором подов, который определяется с помощью селекторов меток, которые являются частью определения контроллера.
Селекторы меток – это запросы, которые позволяют получить ссылку на объекты, соответствующие какой-то из меток, которыми помечаются все объекты управления. Метки и селекторы – это главный механизм Kubernetes, позволяющий выбрать, какой из объектов следует использовать для запрашиваемой операции.
Том – общий ресурс хранения для совместного использования из контейнеров, развернутых в пределах одного пода.
Сервис – совокупность логически связанных наборов подов и политик доступа к ним.
Операторы – специализированный вид программного обеспечения Kubernetes, необходимый для включения в кластер сервисов, сохраняющих свое состояние между выполнениями, системы мониторинга или кэширования. Основное назначение – предоставление возможности управления stateful-приложения в кластере Kubernetes прозрачным способом и скрытия подробностей их настроек от основного процесса управления кластером Kubernetes.
Отметим также, что Kubernetes обеспечивает функции обнаружения сервисов и маршрутизации по запросу. А если конкретнее, то система умеет переназначать необходимые для обращения к сервису IP-адрес и доменное имя сервиса различным подам, которые входят в его состав. При этом обеспечивается балансировка нагрузки между подами, метки которых соответствуют сервису в стиле Round robin DNS, а также корректная работа в случае, если один из узлов кластера вышел из строя, а размещенные на нем поды автоматически переместились на другой. Как правило, сервис доступен внутри управляемого Kubernetes кластера по умолчанию.
Системой реализуется архитектура «ведущий – ведомый»: выделяется подсистема управления кластером, а часть компонентов управляют индивидуальными, ведомыми узлами, которые и называются Kubernetes.