Mail.ru Cloud Solutions
Продукты

Основы Kubernetes — стандарта для разработки высоконагруженных проектов

Какие задачи решает этот инструмент и почему его использует уже 60% крупных компаний

Что такое Kubernetes и зачем он нужен

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

За счет функциональности и удобства технология стала стандартом разработки высоконагруженных проектов и флагманским проектом Фонда развития облачных вычислений (Cloud Native Computing Foundation).

Для чего нужен Kubernetes: примеры использования

Разработчики программного обеспечения и IT-сервисов ежедневно разворачивают тысячи экземпляров контейнеров. Ими нужно управлять, находить ошибки и масштабировать инфраструктуру — и желательно через единый интерфейс. Kubernetes был разработан как раз для таких целей.

С ним проще создавать распределенные отказоустойчивые архитектуры современных цифровых сервисов. А также переносить контейнеры между средами разработки или тестирования и продуктивными средами — либо с одной инфраструктуры на другую.

Вот основные причины, по которым используют технологию

Как внедрить технологию: On-premise Kubernetes vs Cloud Kubernetes

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

Какие проблемы возникают с Self-Hosted Kubernetes и как их решает провайдер

Сложное развертывание и администрирование кластера
Self-Hosted
KaaS от Mail.ru Cloud Solutions
В механизмах создания работающего кластера сложно разобраться. Нужна экспертность в Kubernetes и знание сопутствующих технологий — то есть опытные сотрудники и их время на настройку. Если таких сотрудников в штате нет, их придется нанять.
Готовый кластер за ~10 минут, автоматизация работы с Kubernetes. Все заботы об обслуживании кластера берет на себя провайдер. Доступно простое создание кластера через интерфейс, API или Terraform-провайдер от MCS. Вам понадобится один администратор с опытом работы.
Административная нагрузка на IT-отдел
Self-Hosted
KaaS от Mail.ru Cloud Solutions
Сотрудники компании вынуждены заниматься обслуживанием кластера, резервным копированием, масштабированием, решением проблем и другими сопутствующими вопросами.
Вся административная нагрузка лежит на провайдере, который гарантирует 99,95% SLA на работу кластера. Сотрудники могут сфокусироваться на своей основной работе, а не на поддержке K8s.
Проблемы с хранением данных
Self-Hosted
KaaS от Mail.ru Cloud Solutions
Для развертывания приложений, хранящих данные, надо сильно дорабатывать архитектуру, так как технология изначально разработана для приложений, которые обрабатывают данные, но ничего не хранят.
Уже «из коробки» есть интегрированные Persistent Volumes на быстрых сетевых дисках и возможность в один клик запустить объектное хранилище или управляемые базы данных на той же платформе.
Сложно или невозможно настроить автомасштабирование
Self-Hosted
KaaS от Mail.ru Cloud Solutions
На любой инфраструктуре можно настроить автоскейлинг приложений. Но есть сложности с масштабированием самого кластера: в On-premise для этого нужна закупка серверов, на облачных серверах, скорее всего, понадобится разработка специальных решений.

Облачный сервис позволяет автоматически масштабировать ваши приложения и сам кластер.

Он добавляет дополнительные узлы или освобождает бездействующие — таким образом, у вас всегда столько нод, сколько нужно.

Интеграция с необходимыми для работы кластера инструментами
Self-Hosted
KaaS от Mail.ru Cloud Solutions
Нужно будет интегрировать и настраивать системы мониторинга, логирования, балансировку нагрузки, персональные доступы к кластеру и многое другое.
Встроенный мониторинг на базе Prometheus и Grafana, интегрированный NGINX Ingress Controller и облачный балансер, защищенный Docker Registry, поддержка VPN и многое другое «из коробки».
Необходимость обновления кластера
Self-Hosted
KaaS от Mail.ru Cloud Solutions
Нужно самостоятельно организовать обновление кластера Kubernetes до новой версии так, чтобы сервисы работали без простоя и пользователи ничего не заметили.
Автоматическое обновление по клику без простоев. Нужно только выбрать новую версию, а платформа сама обновит кластер без даунтайма. Сейчас мы поддерживаем версии 1.16–1.19.
Внедрение новых технологий
Self-Hosted
KaaS от Mail.ru Cloud Solutions
Если вам понадобятся новые технологии, например, для анализа Big Data или внедрения интернета вещей, то нужные инструменты придется разворачивать, настраивать и интегрировать с Kubernetes самостоятельно. Это непросто.
Облачный сервис легко интегрируется с другими PaaS, доступными в облаке: готовой платформой для анализа больших данных, системой машинного обучения, управляемыми СУБД, в том числе аналитическими.

KaaS в разы упрощает работу с Kubernetes

Что делает платформа:
Автоматическое развертывание настроенного кластера за ~10 минут
Встроенный мониторинг, поддержка VPN и другие опции
Автоматизация жизненного цикла: бесшовные обновления и автомасштабирование
Удобный интерфейс, API или Terraform-провайдер для управления кластером
Cloud Provider для создания, конфигурации и удаления дисков, балансеров, внешних IP, настроек безопасности
Резервирование всех данных в трех дата-центрах
Что делают эксперты провайдера:
Помогают вам мигрировать приложения
Заменяют и восстанавливают серверы
Обновляют и обслуживают платформу
Технически поддерживают и консультируют вас на русском языке 24/7
Интегрируют в нее новые компоненты
Что делаете вы:
Разрабатываете свои приложения и IT-сервисы, не думая об администрировании и эксплуатации инфраструктуры

Посмотрите, как быстро развернуть кластер Kubernetes в облаке

Весь процесс установки и настройки кластера в KaaS автоматизирован. Это позволяет сократить время развертывания K8s и его настройки с нескольких дней до ~10 минут в облаке.

Managed Kubernetes от Mail.ru Cloud Solutions — простой способ внедрить технологию и снизить накладные расходы

SLA на работу сервиса 99,95% с финансовыми гарантиями
Посекундная оплата и остановка кластера по клику
Автомасштабирование до 100 серверов с экономией на ресурсах до 60%
Сервис доработан под работу с большими данными и в Data Science
Возможность размещения в рамках частного или гибридного облака
Всегда бесплатно:
Публичные IP-адреса
Virtual Private Network
Балансировщик нагрузки
Техническая поддержка 24/7
Входящий и исходящий трафик

Сертификация Kubernetes aaS от Mail.ru Cloud Solutions

Наш облачный сервис сертифицирован по стандартам Cloud Native Computing Foundation (CNCF) по Certified Kubernetes Conformance Program.

Сертификация CNCF значит, что специалисты организации проверили сервис на надежность и подтвердили его соответствие стандартам. Он отвечает всем функциональным требованиям сообщества и полностью совместим со стандартным Kubernetes API.

Какие компании используют Kubernetes

На технологию уже перешли 60% крупных компаний:

Mail.ru Cloud Kubernetes доверяют свой бизнес:

Рассчитайте стоимость Kubernetes в облаке Mail.ru

Вебинары про Kubernetes

Обучение Kubernetes от экспертов Mail.ru Group
Вебинар
«Как выжать максимум из управляемого Kubernetes»
Дмитрий Лазаренко, директор по продукту Mail.ru Cloud Solutions, рассказывает, как получить от KaaS максимум ценности.
Вебинар
«Docker Swarm vs K8s. Уйти нельзя остаться»
Павел Селиванов, ведущий DevOps-инженер Mail.ru Cloud Solutions, рассказывает, когда и какой оркестратор выбрать.
Вебинар
«Ошибки PRO-уровня при внедрении»
Павел Селиванов, ведущий DevOps-инженер, поделится, как избежать обидных факапов при переходе на Kubernetes.

Что еще почитать про работу с Kubernetes и его преимущества

Mail.ru Cloud Solutions — флагман движения Kubernetes в России

Мы поддерживаем Kubernetes-движение в России и собираем вокруг себя сообщество тех, кто интересуется этой технологией.

А также проводим серию собственных митапов @Kubernetes Meetup, включая @Kubernetes Conference — первую российскую конференцию о Kubernetes.

Все новости в нашем телеграм-канале «Вокруг Kubernetes в Mail.ru Group».

Как прошла
конференция
@Kubernetes
Мероприятие для тех, кто вместе с нами делает экосистему Kubernetes в России.

FAQ

Какая функциональность у Kubernetes?

Технология в чистом виде предоставляет вам:

  1. Мониторинг сервисов и распределение нагрузки. Инструмент отслеживает каждый контейнер, проверяя его работоспособность. В случае, если на контейнеры приходится высокая нагрузка, он перераспределяет трафик так, чтобы работа сервисов была стабильной.
  2. Автоматизация развертывания и обновлений. С помощью оркестратора вы можете описать то состояние, которое должно быть у развернутых контейнеров, а также изменять его. Например, настроить систему так, чтобы новые контейнеры создавались и удалялись, когда это необходимо, а ресурсы удаленных контейнеров распределялись во вновь созданные.
  3. Автоматическое распределение нагрузки. Можно указать системе, сколько CPU и памяти нужно каждому из контейнеров. Она разместит их так, чтобы ресурсы серверов использовались максимально эффективно.
  4. Самообслуживание системы. Оркестратор сам перезапускает контейнеры, которые отказали, а также завершает работу тех контейнеров, что не прошли проверки работоспособности, настроенные пользователем, и заменяет их на новые. Он обеспечивает самостоятельное восстановление сервисов за счет автоматического перезапуска или репликации контейнеров.
  5. Управление конфиденциальными данными и конфигурацией приложения. Вы можете добавлять изменения и обновлять конфиденциальные данные или конфигурацию приложения, не меняя образы контейнеров.
С какими инструментами совместим Kubernetes?

Сейчас вокруг платформы сформировалась большая экосистема, состоящая из различных сервисов и инструментов, которые расширяют его возможности. DevOps-инженеры и разработчики могут применять множество инструментов, совместимых с Kubernetes: для мониторинга и анализа, управления приложениями, построения CI/CD и других задач. IT-отделу удобно работать, а компания получает все преимущества новых технологий.

KaaS от Mail.ru совместим со всеми стандартными инструментами экосистемы, их можно подключить по API:

  1. Функции Serverless: OpenFaaS, OpenWhisk, Kubeless.
  2. Сервисные сетки: Istio, Consul, Linkerd.
  3. Мониторинг и анализ: Prometheus, Fluentd, Jaeger, OpenTracing.
  4. CI/CD: GitLab, CircleCI, Travis CI.
  5. Инфраструктура как код: Terraform, Helm.
Что не делает Kubernetes?

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

Однако стоит знать, что технология сама по себе не предоставляет «из коробки» такие сервисы, как очереди сообщений, платформы обработки данных, хранилища, базы данных, системы мониторинга и логирования. Эту проблему можно решить использованием KaaS, в который уже интегрированы некоторые сервисы, и подключением недостающих на облачной платформе.

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

Что такое кластер Kubernetes?

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

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

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

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

Как работает Kubernetes?

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

Чтобы развернуть приложение на платформе, нужны контейнеры (Docker, Containerd или другие) и описание того, сколько нужно контейнеров и какие им требуются ресурсы.

Оркестратор развернет контейнеры и проведет все операции для запуска нужной вам конфигурации, в том числе реализует перезапуск остановившихся контейнеров и их перемещение между узлами.

На каких платформах можно развернуть Kubernetes?
Он может быть развернут на Bare Metal или в облаке, а также использоваться для переноса контейнерных приложений между различными средами или облаками.
Нужна ли специалистам по работе с Kubernetes CKAD?
Специалистам, работающим с технологией, будет полезно пройти курсы по Kubernetes: Certified Kubernetes Administrator (CKA) и Certified Kubernetes Application Developer (CKAD). Их проводит ассоциация Cloud Native Computing Foundation в партнерстве с Linux Foundation. Первый предназначен для администраторов, а второй — для разработчиков. Работать с оркестратором можно и без сертификата, но он подтверждает, что специалист имеет знания и навыки, нужные для работы, что может быть важно при найме.
Как я могу подключить облачный сервис в Mail.ru Cloud Solutions?
Подключить инфраструктурную платформу на основе Kubernetes и управлять ею вы можете через панель управления в личном кабинете пользователя MCS. Подробнее о работе с сервисом можно прочитать здесь.
От чего зависит стоимость сервиса?

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

Кроме того, доступна установка ежемесячного лимита расходов для каждого проекта на платформе Mail.ru Cloud Solutions. Как только вы достигнете настроенного лимита, то получите уведомление на электронную почту. При расчете лимита учитываются расходы в текущем календарном месяце.

Не нашли ответ на свой вопрос?

Найдите его в документации
здесь есть ответы на большинство вопросов по настройке сервисов
Задайте его нам
через форму обратной связи, и мы оперативно ответим
21 год
опыта поддержки высоконагруженных сервисов
100+ млн
пользователей по всему миру
7 лет
экспертизы развития облачной инфраструктуры