Зачем мигрировать на Managed Kubernetes и с чем придётся столкнуться

Kate

Administrator
Команда форума

Почему стоит выбрать Managed Kubernetes​

На первый взгляд кажется, что self-hosted Kubernetes лучше, чем Managed Kubernetes, по ряду рациональных факторов: дешевле, надёжнее и более настраиваемый. Да и что уж греха таить, эмоции тоже оказывают влияние на выбор — всё-таки свой кластер. Однако за этими плюсами скрываются сложности.

Василий Бушуев​

Ведущий DevOps инженер облачной платформы Timeweb Cloud

Квалифицированные специалисты​

Первое, с чем столкнётся компания при желании создать Self-Hosted кластер, — это дефицит квалифицированных кадров. Kubernetes — это, мягко говоря, сложная технология, которая требует квалификации не только на старте проекта, но и при его поддержке. Не получится прочитать документацию с официального сайта и сразу ринуться в бой. Профессионалов, которые действительно разбираются, на рынке ну прям очень немного. Компания может уткнуться в HR-барьер: своих специалистов не хватает, а имеющиеся кадры, скорее всего, придётся взращивать годами. Свой кластер Kubernetes создают крупные компании, для которых найти квалифицированных кандидатов среди сотрудников или на просторах профильных ресурсов не проблема.

В случае использования Managed Kubernetes компания не избавится от необходимости в квалифицированных сотрудниках, но сможет снизить в них потребность. Провайдер берёт на себя ряд обязательств, связанных с администрированием Kubernetes, позволяя заказчику сконцентрироваться на разработке и деплое.

Архитектура в облаке​

Вопрос архитектуры кластера — основополагающий, поскольку определяет степень отказоустойчивости и масштабируемости. Self-hosted кластеры разворачивают как на физических серверах, в собственном ЦОДе, так и облаке — это не нужно путать с Managed Kubernetes.

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

При выборе Managed Kubernetes по умолчанию используется облако и его преимущества. Так решается вопрос с серверами, а первоначальная настройка кластера и подключение к нему систем хранения данных становится проще.
Через интерфейс, API и другие инструменты пользователь конфигурирует сервер, как ему нужно. К слову, обновление Kubernetes, одну из самых рискованных процедур, провайдер берёт на себя.

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

Алгоритм: как мигрировать на Managed Kubernetes​

Конкретные действия для миграции на Managed Kubernetes зависят от первоначального состояния проекта. Есть несколько типичных сценариев:

  • Приложения монолитны, контейнеризация не использовалась.
  • Приложения построены на микросервисной архитектуре:
    — контейнеры не использовались,
    — контейнеризация использовалась, но не в Kubernetes,
    — уже имеется кластер на Kubernetes.
Процесс миграции можно разделить на четыре основных этапа: подготовка кода, создание кластера, создание helm-чартов и миграция в облако.

Подготовка кода​

Контейнеры плохо работают с монолитными приложениями. Поэтому первый этап миграции — рефакторинг кода и переход от монолитной архитектуры к микросервисной с учётом особенностей работы Kubernetes. Проект необходимо научить работать:

  • с локальными хранилищами данных (для stateful приложений),
  • с локальными кешами,
  • в несколько реплик.
Оптимальный вариант — разместить в Kubernetes не весь проект, а его части, как stateless приложений.

Создание кластера​

Исходя из требований проекта, необходимо подобрать конфигурацию кластера и создать его в облаке. Важные моменты:

  • географическая доступность,
  • количество вычислительных ресурсов,
  • мониторинг кластера,
  • политики безопасности,
  • число кластеров,
  • постоянное хранилище данных.

Helm charts​

Если на проекте не использовались оркестраторы или использовались, но отличные от Kubernetes, то helm-чарты создают с нуля. Если использовались Kubernetes-платформы, такие как OpenShift или Rancher, то helm-чарты подгоняют под Kubernetes.

Если уже использовался Kubernetes, то helm-чарты, скорее всего, не нуждаются в серьёзной доработке. Их изменение зависит от новой платформы и совместимости версий.

Миграция​

Первое взаимодействие проекта и кластера — это тестирование. Необходимо проверить работу кластера при нагрузках, зафиксировать и обработать пограничные ситуации. Проверка кластера сводится к следующим мероприятиям:

  • нагрузочное тестирование,
  • функциональное тестирование,
  • проверка производительности,
  • аудит безопасности кластера,
  • интеграционное тестирование.
После проведения подготовки и тестирования можно переходить к миграции. По сути, это процесс применения новых helm-чартов к созданному кластеру. Это можно осуществить как вручную, так и с помощью конвейера CI/CD. По итогу проверки работоспособности кластер будет готов к работе.

В целом, Managed Kubernetes подойдёт малому и среднему бизнесу под малонагруженные проекты, которые не будут страдать из-за недостатка настройки. В этом случае Managed Kubernetes поможет сэкономить деньги на поиск сотрудников, закупку оборудования и время на создание инфраструктуры.

Общие минусы Managed Kubernetes:

  • зависимость от провайдера;
  • техподдержку, которая может быть занята другими проектами;
  • ограничения, например на количество сетевых соединений;
  • ограниченная настройка Kubernetes.

 

devops

Administrator
Команда форума
Суть статьи - что хостинг рекламирует свои managed сервисы )
 
Сверху