6 причин перейти на управляемый Kubernetes
Kubernetes можно установить на своем оборудовании, либо использовать managed-решение от облачного провайдера. При самостоятельной установке on-premise вы можете более гибко контролировать процесс настройки, но есть риск столкнуться с определенными сложностями.
Если вы уже пробовали разворачивать и поддерживать кластер на своем оборудовании, то, возможно, знакомы с ними. Если только планируете это сделать — прочитайте статью, чтобы разобраться в преимуществах управляемого Kubernetes.
В статье мы расскажем про шесть причин перейти на Yandex Managed Service for Kubernetes®, чтобы избежать сложностей развертывания и администрирования кластера Kubernetes on-premise. Заметим, что это не все преимущества, которые дает управляемый Kubernetes, а только самые значимые, на наш взгляд.
Легко установить и настроить кластер
Kubernetes — сложная система, для установки и настройки которой нужны определенные знания и навыки. Чтобы получить стабильную и безопасную систему, важно правильно установить и настроить кластер: права доступа, сетевые настройки, мониторинг, резервное копирование, файловое хранилище и многое другое.
Чтобы это сделать, необходим специалист с определенными навыками. А лучше два, чтобы они подменяли друг друга на время отпусков и болезней. Хорошо, если у вас в компании уже есть такие люди. Если нет, потребуется время, чтобы их найти или обучить. При этом нужно постоянно поддерживать их квалификацию, потому что Kubernetes развивается и в нем появляются новые возможности и особенности.
Чтобы избавиться от сложностей установки и настройки кластера, можно воспользоваться управляемым Kubernetes. Создать готовый кластер в облаке сможет любой технический специалист, знакомый с Kubernetes на базовом уровне. Для этого не нужны глубокие знания администрирования, достаточно понимать основные концепции, чтобы выбрать параметры сети, группы безопасности, количество подов на узле.
Кластер создается в веб-интерфейсе несколькими кликами. Облачный провайдер выполнит за вас все основные настройки и интеграции, настроит резервное копирование, подключит мониторинг и настроит сеть.
Кроме UI-интерфейса Yandex.Cloud также предлагает возможность создания и управления кластером через API, CLI, SDK и Terraform. Главное преимущество такого способа — автоматизация рутинных задач по созданию и управлению ресурсами кластера. Облачный провайдер берет на себя большую часть задач по установке и настройке кластера, что ускоряет процесс развертывания и исключает необходимость иметь профильных специалистов в штате компании.
Кластер обновляет облачный провайдер
Как и любую систему, кластер нужно обновлять. В решении on-premise обновлять и тестировать кластер вам придется самостоятельно. А так как Kubernetes довольно сложен в освоении, не исключена вероятность ошибок, исправлять которые придется самостоятельно, что потребует много времени. А обновить кластер без простоя — еще более сложная задача.
В Managed Service for Kubernetes облачный провайдер сам обновит ваш кластер. Мы предварительно тестируем новые версии Kubernetes и только после этого устанавливаем их на кластеры клиентов. Вам остается лишь проверить корректность работы сервисов и приложений в новой версии Kubernetes. Как клиент может контролировать процесс обновления:
- Вы выбираете расписание установки обновления. Можно указать конкретные дни недели и время. Например, в ночь с пятницы на субботу, чтобы в случае непредвиденных ситуаций еще оставалось время до понедельника. При этом перед установкой обновления мы вас обязательно оповестим.
- Вы можете отключить автообновление и устанавливать каждое обновление отдельно, по мере необходимости. Это полезно, когда нет возможности заранее выделить единое время для установки всех обновлений.
У Kubernetes есть три релизных канала для обновления:
- Rapid. Содержит самые свежие версии Kubernetes. На канале часто появляются минорные обновления с новой функциональностью и улучшениями. Рекомендуем для непродуктивных сред — разработки и тестирования — потому что тут раньше всего появляется функционал, который скоро появится в продуктивном канале regular.
- Regular. Хорошо протестированные версии. Сюда они попадают из канала rapid. Мы рекомендуем использовать канал для большинства продуктовых сред.
- Stable. Самые стабильные версии, которые включают в основном исправления ошибок и проблем безопасности. Сюда они попадают из канала regular. Этот канал мы рекомендуем, если вы хотите как можно реже обновлять кластер. Например, в Kubernetes работают второстепенные приложения, которые не нужно постоянно дорабатывать и тестировать. Также этот канал подойдет, если у вас долгий цикл разработки приложений.
Поддерживается автомасштабирование узлов
Kubernetes умеет горизонтально автомасштабироваться, то есть добавлять и освобождать узлы по мере нагрузки. Когда нагрузка на кластер растет — автоматически подключаются новые узлы, чтобы ваши приложения не тормозили. А когда нагрузка падает, ненужные узлы освобождаются.
Такая возможность есть в любой установке Kubernetes, даже on-premise. Но если настраивать автомасштабирование на своем оборудовании, необходим постоянный резерв свободных машин. При этом большую часть времени резервные машины скорее всего будут простаивать. К тому же не исключена вероятность, что в момент особо высокой непредвиденной нагрузки может не хватить даже этих резервов.
Облачный Kubernetes лишен этих недостатков:
- Вам не нужно думать о простое оборудования. При создании кластера вы выбираете минимальное и максимальное количество рабочих узлов. Когда нагрузка небольшая, в вашем кластере будет минимум узлов. Когда нагрузка возрастает — кластер сам подключит дополнительные узлы из ресурсов облака.
- Облачный провайдер обладает огромными вычислительными ресурсами и может масштабировать ваш кластер вплоть до любого необходимого числа узлов. Ваша система сможет выдержать даже очень высокие нагрузки.
Можно создать региональный отказоустойчивый кластер
При создании продуктового кластера важно позаботиться об отказоустойчивости. Как правило, для этого создаются несколько реплик мастер-узлов.
Если разворачивать кластер на своем оборудовании, как правило, все узлы будут находиться в одном дата-центре или географической зоне (городе или районе). Дата-центры обеспечивают надежность инфраструктуры резервированием, дублированием критических узлов и гарантируют SLA. Но в случае аварии природного или техногенного характера, а также человеческого фактора, ЦОД перестанет функционировать и вы полностью потеряете доступ к кластеру.
Managed-решение Yandex.Cloud позволяет создать региональный отказоустойчивый кластер. У нас есть три собственных дата-центра, расположенных во Владимирской, Рязанской и Московской областях. Если в одном из дата-центров произойдет авария, мастер-узлы в остальных дата-центрах продолжат работать и ваши приложения будут доступны.
А тестовые среды не предъявляют таких требований к отказоустойчивости, для них вы можете создать зональный кластер с одним мастер-узлом. Это будет намного дешевле, чем региональный отказоустойчивый кластер.
Работает с RBAC и IAM
Большие компании используют системы учетных записей, такие как Active Directory или G Suite. И для того чтобы интегрировать их с кластером Kubernetes, необходимо устанавливать и настраивать дополнительные инструменты.
В Managed Service for Kubernetes вы можете подключить систему и использовать свои учетные записи без дополнительных настроек. Для этого на уровне IAM настраивается федерация через протокол SAML. И тогда учетные записи ваших пользователей интегрируются с платформой Yandex.Cloud и им можно назначать роли.
Наш IAM является дополнением к стандартному Kubernetes RBAC. Используя обе системы, можно решать более сложные задачи по разграничению доступа. Например,
разработчику из всех ресурсов платформы необходим доступ только к кластеру Kubernetes. Для этого внутри облака ему выдаются минимальные права, достаточные лишь для подключения к кластеру. А внутри Kubernetes при помощи RBAC ему добавляются необходимые полномочия на объекты кластера.
Удобный UI «из коробки»
У Kubernetes нет стандартного графического интерфейса управления. Существуют сторонние разработки от сообщества, которые нужно устанавливать, настраивать и предоставлять к ним доступ.
Мы разработали собственный интерфейс управления, доступный всем пользователям Managed Service for Kubernetes. Он уже интегрирован с Yandex IAM, что позволяет легко раздавать полномочия. Вы можете использовать наш дашборд вместо одного из сторонних или вместе с ним. Вот несколько его ключевых возможностей:
- Детализация узлов, деплойментов, подов и сети. По каждому из этих объектов можно увидеть текущее состояние, посмотреть перечень событий и логов. Это позволяет отлаживать приложения без необходимости устанавливать дополнительные инструменты в кластер. Из детализации деплоймента можно увидеть, какие поды создались на его основе, и сразу перейти к ним.
- Детализация потребления ресурсов. По каждому узлу или поду можно увидеть, сколько тратится CPU, памяти и сетевых ресурсов.
- Настройка детализации. В каждой детализации можно добавлять или убирать поля для отображения.
- Гибкий фильтр событий. В кластере генерируется довольно много событий, поэтому мы создали гибкий фильтр. Можно фильтровать по пространству имен, уровню или сущности.
Краткие итоги
Мы рассмотрели шесть главных преимуществ Managed Service for Kubernetes® перед классическими on‑premise‑кластерами Kubernetes.
Но это не все, что может предложить Yandex.Cloud для решения задач Kubernetes. С помощью платформы вы можете решать и другие задачи, например находить уязвимости в образах контейнеров, шифровать секреты в etcd‑хранилище или интегрироваться с инструментами CI/CD. Более подробно об этих и других возможностях вы можете узнать из нашего вебинара «Kubernetes. Managed на все 100%».