Оркестрация и Kubernetes
- Контейнеры используются для упаковки сервисов и приложений.
- Kubernetes - популярная система управления контейнерами с открытым исходным кодом.
- Kubernetes решает разнообразные прикладные задачи, например, кластеры Kubernetes используются в телеком-вышках, умных домах и управлении узлами автомобиля.
- Kubernetes состоит из узлов, которые объединяются в кластеры.
- В кластер Kubernetes можно устанавливать расширения для облегчения управления.
- Kubernetes выполняет автоматическое развёртывание, мониторинг сервисов, балансировку, оркестрацию хранилища и самоконтроль.
- Yandex Managed Service for Kubernetes упрощает администрирование и интеграцию, облачный провайдер отвечает за обслуживание и обновление инфраструктуры.
- Приложения, помещённые в кластер Yandex Managed Service for Kubernetes, автоматически масштабируются.
- Для хранения Docker-образов для подов кластера можно использовать Yandex Container Registry.
Оркестрация и Kubernetes
На прошлых уроках мы обсудили, для чего нужны контейнеры. Вы уже знаете, что хорошей практикой считается упаковывать каждый сервис в отдельный контейнер. Даже для простого интернет-сайта создаются как минимум два контейнера: для CMS-системы (например WordPress) и для БД. Для работы серьёзного приложения и тем более набора приложений в облаке обычно приходится создавать множество контейнеров. Ими нужно управлять: отслеживать работоспособность и перезапускать при сбоях, обновлять, разворачивать, масштабировать, останавливать. Такое управление называется оркестрацией.
Наиболее популярная система управления контейнерами — Kubernetes®, также известная как K8S. Это система с открытым исходным кодом, которая автоматизирует операции с контейнерами: мониторинг, распределение нагрузки, предоставление ресурсов и пр.
С помощью Kubernetes решают разнообразные прикладные задачи. Например, кластеры Kubernetes разворачивают на телеком-вышках, при организации умного дома и даже для управления узлами автомобиля.
Из чего состоит Kubernetes
В Kubernetes контейнеры или наборы контейнеров размещаются на подах (pod). Под — это логический хост. Один или несколько подов, а также сервисы для управления подами образуют узел, или ноду (node). Узел — это рабочая машина, виртуальная либо физическая. Однотипные узлы образуют группу узлов.
В свою очередь, узлы объединяются в кластер. У каждого кластера есть своя панель управления (control plane), именно она и обеспечивает оркестрацию. Один из узлов кластера становится главным — мастером (master). Он запускает управляющие процессы Kubernetes: сервер Kubernetes API, планировщик и контроллеры основных ресурсов.

В одном физическом кластере могут находиться несколько виртуальных. Виртуальный кластер называется пространством имён (namespace). В отличие от нод и подов, которые в кластере есть всегда, пространства имён надо использовать тогда, когда в них возникает реальная необходимость. Например, если приложение состоит из сервисов, то для каждого сервиса стоит создать пространство имён. Это поможет управлять разделением ресурсов физического кластера между сервисами.
В кластер Kubernetes можно устанавливать расширения, облегчающие управление. Например, графический веб-интерфейс Dashboard или инструмент для мониторинга ресурсов кластера Container Resource Monitoring. Они необязательны. Единственное обязательное расширение — это внутренний DNS-сервер кластера. Он необходим для общения сервисов между собой.
Что делает Kubernetes
- Автоматическое развёртывание. Вы можете описать состояние контейнеров в виде конфигурации, и Kubernetes автоматически обеспечит заданное состояние: будет развёртывать и удалять контейнеры, перераспределять ресурсы.
- Мониторинг сервисов и балансировка. Kubernetes распределяет сетевой трафик так, чтобы развёртывание было стабильным.
- Оркестрация хранилища. Kubernetes позволяет автоматически смонтировать систему хранения: локальное или облачное хранилище.
- Самоконтроль. Kubernetes перезапускает отказавшие контейнеры, заменяет их и завершает работу контейнеров, которые не соответствуют заданному уровню работоспособности.
Yandex Managed Service for Kubernetes
Как вы наверняка догадались, Kubernetes довольно сложно администрировать, даже если использовать его вместе с облачным хранилищем и не заботиться о физическом предоставлении ресурсов. Чтобы упростить администрирование и интеграцию, в Yandex Cloud есть сервис Managed Service for Kubernetes.
- При использовании Yandex Managed Service for Kubernetes вы создаёте кластер и группы узлов. При этом мастер-ноды, пространство имён, сервис DNS и прочие необходимые элементы развёртываются автоматически. А за обслуживание и обновление всей инфраструктуры кластера отвечает облачный провайдер.
- Приложения, помещённые в такой кластер, автоматически масштабируются: при пиковых нагрузках ресурсы подтягивают, при спаде — освобождают.
- У Yandex Managed Service for Kubernetes есть свой графический интерфейс. Дополнительные расширения не требуются.
- Для хранения Docker-образов для подов кластера используйте Yandex Container Registry.
- Мастер-узел можно настроить так, что он будет автоматически реплицироваться во всех зонах доступности Yandex Cloud.
- Благодаря интеграции с сервисом Yandex Identity and Access Management можно добавлять пользователей в кластеры Kubernetes по учётным записям вашей организации или, например, почте на @yandex.ru.