IT-специалистам: зачем переходить на услугу Managed Kubernetes и что для этого нужно сделать

IT-специалистам: зачем переходить на услугу Managed Kubernetes и что для этого нужно сделать

Разобраться

В 2021 году компания Statista провела опрос среди разработчиков, специалистов по эксплуатации и безопасности, спросив у них: «Используете ли вы Kubernetes?». Ответили положительно 46% респондентов, которые занимали разные должности в крупных и небольших компаниях из разных отраслей.

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

IT-специалистам: зачем переходить на услугу Managed Kubernetes и что для этого нужно сделать

Команда
Timeweb Cloud

Технология контейнеризации экономит ресурсы и упрощает разработку и развёртывание

Kubernetes — это программное обеспечение для оркестрации, или управления контейнерами. Контейнер представляет собой изолированную среду, в которую упаковывается приложение со всеми его зависимостями. С точки зрения самого приложения оно выполняется как в обычной операционной системе.

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

Технология контейнеризации помогает:

  • экономить ресурсы: контейнеры не несут всей рабочей нагрузки экземпляра операционной системы, а только её части; контейнеры меньше весят и тратят меньше ресурсов;
  • увеличить скорость разработки: упакованные в контейнер приложения можно запускать на любом устройстве с необходимым ПО — их быстрее развёртывать и запускать; контейнеры отлично подходят для гибких методологий создания ПО — Agile и DevOps.

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

Для внедрения Kubernetes у компании будет два пути:

  • самостоятельное развёртывание кластера: создание и настройка серверной инфраструктуры и развёртывание на ней Kubernetes ⟶ нетривиальная задача;
  • Managed Kubernetes — услуга для решения этой задачи: провайдер предоставляет клиенту развёрнутый кластер в облаке, поддерживает и обновляет его.

Расскажем подробнее об этой услуге, её плюсах и минусах и об общем алгоритме действий для её реализации.

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

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

Потребность в квалифицированных специалистах снижается

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

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

Компания может уткнуться в HR-барьер: своих специалистов не хватает, а имеющиеся кадры, скорее всего, придётся взращивать годами.

Свой кластер Kubernetes создают крупные компании, для которых найти квалифицированных кандидатов среди сотрудников или на просторах профильных ресурсов не проблема.

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

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

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

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

Под — это основная рабочая единица в кластере, один или несколько контейнеров.

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

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

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

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

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

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

Managed Kubernetes помогает экономить деньги на поиск сотрудников, закупку оборудования и время на создание инфраструктуры.

Основные минусы Managed Kubernetes:

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

IT-специалистам: зачем переходить на услугу Managed Kubernetes и что для этого нужно сделать Профессия

Сетевой
инженер

Узнать больше

  • Научитесь настраивать оборудование, протоколы маршрутизации и проектировать безопасные корпоративные сети
  • Отработаете навыки на практике: выполните 32 лабораторные работы и построите корпоративную сеть
  • Освоите IT-профессию без навыков программирования и начнёте работать через 7 месяцев обучения

Как мигрировать на Managed Kubernetes

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

Есть несколько типичных сценариев ↓

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

IT-специалистам: зачем переходить на услугу Managed Kubernetes и что для этого нужно сделать Приложения построены на микросервисной архитектуре:

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

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

Кратко разберём каждый этап.

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

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

Проект необходимо научить работать:

  • с локальными хранилищами данных — для stateful-приложений,
  • с локальными кешами,
  • в несколько реплик, или экземпляров.

Оптимальный вариант — разместить в Kubernetes не весь проект, а его части, как stateless-приложений.

Разница между stateless- и stateful-приложениями заключается в сохранении своего состояния — любой информации, необходимой для работы. Stateless-приложения не сохраняют такие данные, а stateful сохраняют. Проблема stateful-приложений и контейнеров связана с тем, что последние не позволяют сохранять информацию: для нормальной работы stateful-приложение нужно научить хранить данные вне контейнера.

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

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

Стоит учитывать следующие моменты:

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

Helm-чарты

Helm-чарт — это набор инструкций для создания экземпляра приложения в кластере Kubernetes.

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

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

Миграция

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

Проверка кластера сводится к следующим мероприятиям:

  • нагрузочное тестирование,
  • функциональное тестирование,
  • проверка производительности,
  • аудит безопасности кластера,
  • интеграционное тестирование.

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

Материал изначально опубликован на habr.


Мнение автора и редакции может не совпадать. Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.

IT-специалистам: зачем переходить на услугу Managed Kubernetes и что для этого нужно сделать

Команда
Timeweb Cloud

Оцените статью

Средняя оценка 5 / 5. Всего проголосовало 2