Привет, Хабр! Как и многие другие, в прошлом году мне пришлось внезапно мигрировать из тесного привычного офиса к себе домой. Я и раньше работал из дома, когда была такая нужда. Но чтобы несколько месяцев подряд — такое со мной случилось впервые. Появилось свободное время, которое я сначала не знал, куда девать. Но потом приспособился, начав изучать вещи, до которых раньше не доходили руки.

Я поковырялся в инвестиционных играх на бирже, познакомился с облачным геймингом, а ещё успел почитать о том, что за зверь такой появился, про который из каждого умного утюга говорят — Kubernetes. Начав с блога Фланта, я убедился, что конкретно мне и конкретно сейчас эта штука не нужна, но выглядит она интересно.

Почитал, одобрил и забыл, да вот только буржуйский Facebook про меня забывать не хотел. И где-то с неделю показывал мне рекламу с самыми наивыгодными предложениями этого самого кубернетиса. В результате я в очередной раз продемонстрировал моральную слабость и решил лично познакомиться с этим зверем.

Дисклеймер

Главное, что я понял, так это что если вы не слышали про Kubernetes и не понимаете, как его использовать в вашей работе, то в 99% случаев он вам и не нужен. Но сама идея сокращения цикла разработки за счёт быстрой доставки пользователю и возможности тестировать версии приложений на узких сегментах аудитории прекрасна. Посмотрел, что получилось, после чего можно распространить версию приложения на всех пользователей или немедленно её откатить

Но продолжу тему знакомства с этой модной платформой управления контейнерами. Я решил не ограничивать себя одной компанией, наиболее часто мозолившей глаз в Facebook. А выбрать несколько более-менее крупных фирм, у которых есть толковое предложение.

Как выбирал

Вы удивитесь, но поиском. Погуглил «Kubernetes в облаке», пролистал пару страниц. Так и нашёл семь компаний, которые наиболее активно продвигают эту услугу: Mail.ru Cloud Solutions, Cloud4Y, CloudMTS, Yandex.Cloud, КРОК, DataLine, Selectel.

Было бы круто воспользоваться сервисом подбора провайдеров, где можно указать фильтры по ценам, возможностям и прочему. Но увы, я такого сервиса не нашёл, так что делал всё ручками. И если кого шибко важного и крупного не указал, так это не по причине моей зловредности, а потому что реклама у них слабенькая. Ну, и или страницы в поиске глубоко находятся. В общем, кого нет в списке, того я не нашёл. Прошу понять, простить и не гнобить.

Про субъективность

Это абсолютно необъективная статья. Было просто интересно, что это за зверь, какой сервис выглядит удобнее и надёжнее остальных, какой проще и понятнее именно для меня. Так что учитывайте, что мой опыт — это всего лишь мой опыт. У вас могут быть другие предпочтения и знания. Рассматривайте данный текст просто как информацию, абстрактное общее сравнение, а не прямое руководство к действию.

Ещё момент: я собирал информацию, которая есть в открытом доступе, стараясь не задалбывать менеджеров глупыми частыми вопросами по почте и телефону. Мне было неловко звонить и расспрашивать, если покупать всё равно не планирую. Тратить чужое время из-за неуёмного моего любопытства было как-то стыдно. Ну захотелось мне проверить, будет ли работать их сервис, нравится ли он мне как пользователю. Были некоторые моменты, которые я узнавал по телефону и почте, но в основном все данные брал из документации и маркетинговых материалов.

Здесь возникли первые сложности. Я старался звонить по-минимуму, но тот же Яндекс без звонка хоть что-то сообщать отказывался. Остальные без проблем написали о том, что они предлагают и как всё это работает. Ну и ладно, подумал я. Информации в свободном доступе тоже хватает. Вернусь позднее и пообщаюсь, раз они такие буки. Или не пообщаюсь, если к тому времени уже натестируюсь по самый докер. Это была зима 2020, и у меня было много свободного времени.

Знакомство

Звонить и писать сразу всем компаниям — гиблое дело, особенно если не готов покупать, а хочешь лишь проверить, как оно работает. Поэтому я потихоньку запрашивал тестовый доступ у каждой компании по очереди. Быстрее всех ответили Selectel, Cloud4Y и MCS, а вот Крок и DataLine оказались не столь быстрыми. Мне даже пришлось несколько раз ментально их пнуть напоминать о себе, чтобы получить какой-то ответ.

И уже на этом этапе круг подопытных кроликов провайдеров сузился. DataLine вообще никак не захотел со мной общаться. Письма ушли в молоко. «Ну и ладно», — подумал я. «И нечего нас дёргать со всякими глупостями», — подумал неизвестный мне менеджер DataLine. КРОК вежливо извинился и сообщил, что мелочь вроде меня им не интересна. Неприятно, но честно. Спасибо за это. Лучше честный отказ, чем игнор или затягивание времени.

Отмечу, что прямо-таки агрессивных продаж не наблюдалось. Понятно, что я не самая крупная рыбка, которая водится в облачном море. Но всё же. Порадовало, что мне не впаривают, а предлагают. Убеждают. Правда, почти все компании сочли своим долгом сделать меня подписчиком полезных корпоративных рассылок. Но к этому я был готов.

Чуть забегая вперёд скажу, что поскольку компаний стало меньше, а я вошёл во вкус, то в процессе тестирования сервисов Kubernetes вспомнил и про Яндекс. «А не позвонить ли мне им?», подумалось мне. Как оказалось, не зря — у этих ребят оказалось не самое плохое решение из тех, что мне удалось посмотреть.

Тестирование

Теперь давайте посмотрим, чего я натестировал.

Компания

Selectel

Mail.ru Cloud

МТС Cloud

Yandex.Cloud

Cloud4Y

Платформа, на которой построено решение

OpenStack + KVM

OpenStack + KVM

Стек технологий виртуализации VMware vSphere и NSX-T

Собственная разработка

Предоставляется на базе Container Service Extension (CSE) в VMware Cloud Director

 В большинстве своём решение строится на OpenStack + KVM. Это часто используемая связка. OpenStack — это тот же Kubernetes, но захватывающий уровень виртуальных машин. Он бесплатен, у него большая комьюнити, и есть ответы на многие вопросы. Но иногда поиск этих ответов занимает много времени, а в случае работы с виртуальной инфраструктурой время часто бывает критически малым ресурсом. Кроме того, специалистов, умеющих работать с OpenStack, на рынке не так много.

Также провайдеры используют стек технологий виртуализации VMware vSphere и NSX-T. NSX-T предназначен для гибридных окружений, как в смысле поддержки разных гипервизоров (ESXi и KVM), так и в плане поддержки облачных инфраструктур (например, AWS). VMware платный, но зато предлагает гарантированную поддержку от вендора с ответами на сложные вопросы и кейсы. И специалистов по VMware найти проще.

У Яндекса — собственная разработка. Я даже накопал классную информацию об этом. Подход имеет место быть. Насколько удобно решение для пользователей — должны сказать сами пользователи. Явных косяков я не заметил. Неявных найти не удалось из-за недостаточной экспертизы в этом вопросе. Если хотите, пните меня в комментариях.

Все решения дают обширный функционал в реализации облаков. Я не могу сказать, что какое-то из них лучше или хуже. Разве что «самопис» может насторожить. То есть выбор платформы — дело вкуса.

Облачные балансировщики нагрузки

Компания

Selectel

Mail.ru Cloud

МТС Cloud

Yandex.Cloud

Cloud4Y

Балансировщик

Создаётся вместе с кластером

Создаётся автоматически с кластером

По умолчанию открыты только 80 и 443 порты. Балансировщик добавляется автоматически при создании кластера

Создаётся дополнительный балансер

Создаётся дополнительный балансер

 Если говорить про балансировщик, распределяющий нагрузку, то в Selectel он создаётся вместе с кластером. Автоматическое создание балансировщика вместе с кластером предлагает Mail.ru, у него возможно автоматическое и быстрое масштабирование до 1000 узлов. А вот МТС удивил. Да, балансировщик создаётся автоматически при создании кластера. Но умолчанию открыты только 80 и 443 порты. Дополнительные порты можно открывать только через поддержку. Яндекс и Cloud4Y тоже предлагают создание дополнительного балансировщика. На этот случай есть специально написанные инструкции, ссылку на которые они мне заботливо прислали.

Управление

Если говорить про управление нашими драгоценными контейнерами и кластерами, то стоит сказать, что компании используют проверенные типовые решения:

Компания

Selectel

Mail.ru Cloud

МТС Cloud

Yandex.Cloud

Cloud4Y

Управление

Web/API

Web/API

API

Web/Console Yandex.Cloud

Web/API

Mail.ru предлагает варианты управления кластером как через Kubernetes Dashboard, так и через kubectl. Web/API возможны в Cloud4Y и Selectel. У МТС только API. К тому же, управление docker-контейнерами из интерфейса не предусмотрено. В интерфейсе происходит управление кластерами Kubernetes. Яндекс пошёл своим путём. У них предлагается Web и Console Yandex.Cloud. Мне показалось не очень удобным и логичным, когда для работы требуется специальная яндексовая консоль. Может, есть и какой-то другой способ, только я его не нашёл.

Хранилища данных

Компания

Selectel

Mail.ru Cloud

МТС Cloud

Yandex.Cloud

Cloud4Y

Persistent Volumes

Поддерживает блочные и сетевые устройства NFS

Блочное устройство накладывает на ограничения по readwritemany

Persistent Volumes идёт через блочное устройство что накладывает на ограничения по readwritemany а можно только одной ноде писать на него

Блочные устройства могут работать только в ReadWriteOnce

Поддерживает блочные и сетевые устройства NFS

Persistent Volumes можно считать аналогом нод в самом кластере Kubernetes. Зачем вообще нужна эта штука? Допустим, у вас есть несколько разных хранилищ. К примеру, одно быстрое на SSD, а другое медленное на HDD. Вы можете создать два Persistent Volumes в соответствии с этим, а затем выделять подам место в этих томах. Kubernetes поддерживает огромное количество подключаемых томов с помощью плагинов.

Вот тут у провайдеров используются разные решения. Cloud4Y и Selectel поддерживают как блочные, так и сетевые устройства NFS. И это хорошо. У Mail.ru блочное устройство накладывается на ограничения по ReadWriteMany (RWX). В документации указано, что механизм Persistent Volume позволяет подключить существующий Cinder Volume, находящийся на кластере Ceph в качестве постоянного хранилища данных к подам. Хранилище на базе Ceph обеспечивает сохранность данных за счёт трёхкратной репликации. У МТС Cloud Persistent Volumes тоже идёт через блочное устройство, что накладывается на ограничения по ReadWriteMany. Можно только одной ноде писать на него. В Yandex.Cloud блочные устройства могут работать только в ReadWriteOnce (RWO).

Контроллеры Ingress

Компания

Selectel

Mail.ru Cloud

МТС Cloud

Yandex.Cloud

Cloud4Y

Ingress

Добавлять нужно самостоятельно

Можно выбрать при установке кластера

Можно добавить убрать при создании кластера

Ingress на базе LoadBalancer

В случае необходимости разворачивается вручную по инструкции

У Selectel в версии Managed Kubernetes Ingress Controller не предустанавливаются в кластеры. Для создания объектов Ingress потребуется самостоятельно установить Ingress Controller. Обратите внимание, что при создании Ingress Controller у вас, вероятнее всего, будет создан Service с типом LoadBalancer помимо самого приложения Ingress Controller. В таком случае в вашем проекте будет автоматически создан дополнительный балансировщик нагрузки, который отобразится в разделе «Балансировщики нагрузки».

Mail.ru позволяет выбрать Ingress при создании кластера. Кластеры Kubernetes, устанавливаемые в MCS содержат преднастроенный Ingress Controller на базе балансировщика нагрузки Nginx, который может обеспечить доступ к вашим сервисам, используя один и тот же выделенный балансировщик нагрузки OpenStack. МТС позволяет добавить/убрать Ingress при создании кластера. В документации МТС сразу говорится, что NGINX Ingress разворачивается в стандартной настройке при запуске кластера при выборе соответствующего параметра. У Яндекса Ingress построен на базе LoadBalancer. Cloud4Y предлагает разворачивать Ingress в ручном режиме при необходимости.

Масштабирование

Компания

Selectel

Mail.ru Cloud

МТС Cloud

Yandex.Cloud

Cloud4Y

Масштабирование

Нет

Есть autoscaling, по определенным параметрам загрузки нод, добавляет и убавляется автоматически

Нет

Есть autoscaling, по определенным параметрам загрузки нод, добавляет и убавляется автоматически

AutoScaling на уровне pod определяется на основании конфигурации k8s. Autoscaling на уровне воркеров\нод реализован через vCloud или вручную прописываемые скрипты

У Селектела и МТС нет автоматического масштабирования. Работайте ручками, господа! Надо уточнить, что в МТС автоскейлинг будет добавлен в этом (2021)году. Яндекс и Майл предлагают более удобные условия. У них есть autoscaling по определенным параметрам загрузки нод, добавляется и убавляется автоматически.  Cloud4Y предлагает автоскейлинг на уровне pod который определяется на основании конфигурации k8s. Autoscaling на уровне воркеров\нод на лету отсутствует, но можно зайти в vCloud и докинуть ноду или написать скрипты, которые делают то же самое, только запрограммированно

Автоскейлинг удобен, потому что он выполняет мониторинг приложений и автоматически настраивает ресурсы для поддержания стабильной прогнозируемой производительности при минимально возможных затратах. То есть приложения получают нужный объём ресурсов в нужное время. Это важный параметр. И отсутствие автоскейлинга несколько напрягает.

Мониторинг

Компания

Selectel

Mail.ru Cloud

МТС Cloud

Yandex.Cloud

Cloud4Y

Мониторинг

Добавлять нужно самостоятельно

При создании кластера можно добавить Prometheus, Grafana

По стандарту ничего нет, нужно добавлять самостоятельно

Автоматически ничего нет, самому нужно все ставить

Добавлять нужно самостоятельно

Мониторинг — это неотъемлемая часть любой инфраструктуры. Правильно настроенный мониторинг четко отражает здоровье ИТ-системы и про активно диагностирует её состояние. В данном случае все используют стандартное решение для VMware в виде плагина. У него есть свои ограничения, 1 мастер нода и 5 воркеров.

Cloud4Y по запросу прислал инструкции, как сделать 3 мастер ноды и добавить балансировщик. Ссылками и вложенными файлами с руководством поделились и другие провайдеры. Правда, Selectel и МТС очень долго раскачивались. Видимо, искали, где у них это всё написано.

Мне показалось довольно удобным решение, когда плагин позволяет быстро и легко развернуть среду и начать работать с ней в минимальном, но достаточном для старта объёме. Новичкам в самый раз. Компании, которые уже давно используют функционал, способны развернуть среду самостоятельно, без плагина и пользуясь только IaaS-инфраструктурой.

Персональные данные

Компания

Selectel

Mail.ru Cloud

МТС Cloud

Yandex.Cloud

Cloud4Y

Поддержка ФЗ-152

Для самой Облачной платформы проведена оценка, для УЗ 3-4. Для остальных сервисов на её базе, в том числе Kubernetes такая оценка возможна позднее

Полное соответствие в ФЗ 152 «О защите персональных данных», сервера находятся на территории России;

Поддержки 152-фз нет. Kubernetes планируется развернуть в защищенном сегменте в 2021 году.

Не получил внятного ответа

В ФЗ облаке оно присутствует и полностью соответствует ФЗ.

ФЗ-152 сейчас в тренде, и провайдеры активно развивают это направление. Selectel, Mail.ru Cloud, Cloud4Y обещают, что их решения соответствуют требованиям закона о персональных данных. С Yandex.Cloud я не понял, есть ли такая штука. Похоже, что нет, ведь иначе об этом где-нибудь, да говорилось бы. МТС Cloud пока лишь дорабатывает свою систему.

Так или иначе, работать с персональными данными в кластерах Kubernetes можно у большинства облачных провайдеров.

Оплата

Компания

Selectel

Mail.ru Cloud

МТС Cloud

Yandex.Cloud

Cloud4Y

Какой биллинг

Биллинг почасовой

Pay-as-you-Go почасовой биллинг

Биллинг помесячный

Есть разные варианты, включая помесячный биллинг

Биллинг помесячный

Тут, наверное, и говорить нечего. Особых нововведений в плане оплаты нет.

Отличия от конкурентов

Компания

Selectel

Mail.ru Cloud

МТС Cloud

Yandex.Cloud

Cloud4Y

Отличия решения от конкурентов

Адаптировали Kubernetes в Облачной платформе, чтобы пользователи могли получить стандартный Kubernetes с поддержкой от Selectel.

Тройная репликация и отказоустойчивость (все копии хранятся в трёх томах на разных серверах); пропускная способность (канал трафика 1ГБ/сек); мощный процессор Intel? Xeon? E5-2660v4.

Принципиально отличается более отказоустойчивой системой виртуализации VMware 

Просто хороший сервис.

               

Квалифицированная поддержка по данному продукту, а также необходимая инфа в КБ.

             

Самый интересный пункт, на который я рассчитывал. Но увы. Все провайдеры говорили примерно одно и то же. Каких-то особых плюшек не придумано. Это не в укор провайдерам. Это скорее вопрос к их рекламщикам — почему решения так сильно похожи друг на друга?

Mail.ru делает упор на тройную репликацию данных и отказоустойчивость, Selectel — на привычный типовой формат работы с Kubernetes, Cloud4Y обещает мощную техническую поддержку и развитую документацию в базе знаний. МТС подчёркивает преимущества VMware в плане отказоустойчивости, а Яндекс порадовал формулировкой. Их сервис хороший, и это его ключевое отличие от остальных.

Выводы

Возможно, вы ждёте, что я сейчас скажу, что какой-то сервис хороший, а остальные плохие. А вот и нет! Чисто субъективно мне понравились две компании, но у вас могут быть совершенно другое мнение. Поэтому рекомендовать никого не буду. На вкус и цвет все фломастеры разные.

Отмечу, что техническая поддержка у некоторых компаний оставляет желать лучшего. Чтобы завести кластер или решить проблему, приходилось долго общаться с инженерами. А менеджеры радостно шлют ссылки на видео, где рассказывается совсем не про то, что мне нужно. Возможно, это из-за того, что я был на тестовом периоде, и денег с меня получить было нельзя.

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

Надеюсь, что всё вышенаписанное хоть как-то поможет вам, если вдруг понадобится Кубернетис. Хотя здесь всё очень быстро меняется.