Сегодня, когда ИТ-компании распиливают монолиты своих Big Data систем на микросервисы, а DevOps-подход совершает свое победное шествие по локальным и облачным кластерам, Kubernetes стал, пожалуй, самой востребованной технологией 2019 года. Однако, k8s нужен далеко не каждому проекту. В этой статье мы поговорим о достоинствах и недостатках кубернетис, в каких случаях он не нужен и какие есть альтернативы этой популярной платформе управления контейнеризованными приложениями.
Плюсы Kubernetes
Кубернетис считается системой или даже платформой оркестрации контейнеров с самыми широкими функциональными возможностями. С точки зрения использования K8s в Big Data системах наиболее значимы следующие преимущества Kubernetes:
- автоматическая балансировка нагрузки с помощью постоянного мониторинга сведений о производительности и использовании ресурсов и соответствующее распределение работающих приложений по всему виртуальному кластеру;
- наличие API и интерфейса командной строки для ручного управления распределением контейнеров и нагрузкой между узлами системы;
- обеспечение информационной безопасности за счет механизма сетевых политик и ролевой авторизации пользователей по ключу;
- гибкая кастомизация метаданных для своих сервисов, подов и других сущностей, что весьма удобно в многокомпонентных инфраструктурах, какими часто являются Big Data системы;
- наличие средств логической изоляции приложений, команд и рабочих нагрузок в одном кластере с целью предоставления запущенным приложениям и командам минимально необходимого набора привилегий для использования ресурсов;
- поддержка распределенных и сетевых файловых систем, таких как, например, HDFS для Apache Hadoop, благодаря изначальной ориентации на кластеры Big Data;
- наличие дэшбордов — наглядных витрин с важными показателями (dashboard).
Минусы Kubernetes
При всех достоинствах K8s эта система управления контейнерными кластерами имеет следующие недостатки, которые значительно усложняют ее использование на практике:
- большое число специфических понятий и взаимозависимых сущностей (под, сервис, кубелет, контроллер и т.д.);
- скудная документация, которая недостаточно подробно описывает систему;
- добавление дополнительного уровня абстракции увеличивает сложность и хрупкость системы;
- недостаток и высокая стоимость опытных специалистов, в совершенстве владеющих этой DevOps-технологией.
Когда использовать K8s
Тем не менее, Kubernetes — отличный вариант для Big Data проектов, когда требуется запускать множество контейнерных кластеров, работать с высоконагруженными сетями, а также с облачными PaaS/IaaS-решениями. Кроме того, ее широкие функциональные возможности и гибкие политики сетевой безопасности делают K8s практически идеальным инструментом для развертывания масштабируемых систем Big Data и построения надежного конвейера непрерывной интеграции и поставки приложений (CI/CD pipeline).
Альтернативы кубернетис
Итак, большой и сложный K8s не нужен при следующих условиях:
- число управляемых контейнеров невелико (до 100);
- нет желания или возможности разбираться с особенностями внутренней работы Kubernetes;
- требуется быстрый и недорогой DevOps-инструмент для обеспечения CI/CD pipeline.
Существует множество альтернатив Kubernetes: Docker Swarm, Apache Mesos, Nomad, Fleet, Aurora, Rancher, Amazon EC2 Container Service, Microsoft Azure Container Service. Данные системы оркестрации контейнеров не столь масштабны, как K8s, однако они выполняют наиболее востребованные функции быстрого развертывания приложений и запуска микросервисов на виртуальных кластерах, что существенно облегчает жизнь администраторам Big Data систем и DevOps-инженерам.
– blog.strangeman.info/devops/docker/2016/08/21/docker-orchestration-summary.html
– xelent.ru/blog/chto-takoe-orkestratsiya-konteynerov
– dvps.blog/minimalnoie-sravnieniie-swarm-kubernetes-mesos-nomad-rancher
– bigdataschool.ru

