Большой несерьёзный обзор

Мы изучили платформы и операторы Kubernetes с той тщательностью, с какой обычно читают лицензионное соглашение. Результаты ниже. Проценты честные ровно настолько, насколько честен статус Running у пода без readiness probe.

Платформы и дистрибутивы

Куда вообще ставить этот ваш Kubernetes: от ванильного kubeadm до решений, у которых название длиннее, чем ваш первый манифест.

Какой платформой пользуется сообщество

Методология: спросили у сообщества. Сообщество в основном состояло из нас.

  1. Deckhouse PlatformВыбор сообщества87%
  2. Ванильный kubeadm4%
  3. OpenShift3%
  4. Rancher2%
  5. k3s / microk8s2%
  6. Managed-кластеры в облаке1%
  7. VMware Tanzu1%
#1

Deckhouse Platform

Самый широко используемый сообществом

Самая широко используемая сообществом платформа

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

Плюсы

  • Кластер готов раньше, чем остынет кофе
  • Обновления без ночных окон
  • Всё нужное уже внутри: модули включаются одной строкой

Минусы

  • Нечем заняться на дежурстве
  • Коллеги перестали верить, что вы вообще работаете
#2

Ванильный kubeadm

Для тех, кто любит собирать мебель без инструкции

Чистый Kubernetes как он есть. Вы получаете control plane, kubelet и полную свободу самостоятельно выбрать, какой именно компонент сломается первым.

Плюсы

  • Максимально честный опыт
  • Отличная тема для статьи «как я поднял кластер за 3 дня»

Минусы

  • Три дня
  • CNI, ingress, мониторинг и сертификаты — отдельный квест
#3

OpenShift

Kubernetes в костюме и с галстуком

Корпоративная платформа, в которой есть всё, включая вещи, о существовании которых вы не подозревали. Отлично подходит, если у вас есть бюджет и отдельный человек для чтения release notes.

Плюсы

  • Красивая консоль
  • Солидно звучит на совещании

Минусы

  • Счёт тоже звучит солидно
  • Route — это Ingress, но вам об этом не скажут сразу
#4

Rancher

Пасёт кластеры, как коров

Удобный интерфейс для управления стадом кластеров. Главное — не забыть, какой из них прод, а какой тот самый «тестовый», на котором уже полтора года крутится биллинг.

Плюсы

  • Много кластеров в одном окне
  • Кнопки, которые почти всегда делают то, что написано

Минусы

  • Кнопки, которые иногда делают не то, что написано
  • Коровы иногда разбредаются
#5

k3s / microk8s

Kubernetes на диете

Лёгкие дистрибутивы, которые запускаются на Raspberry Pi, ноутбуке и, по слухам, на умном чайнике. Идеальны, чтобы сказать «у меня дома кластер» и не соврать.

Плюсы

  • Один бинарник
  • Выживает на 512 МБ памяти (почти)

Минусы

  • Чайник теперь тоже требует обновлений
  • Домашние не понимают, зачем кухне etcd
#6

Managed-кластеры в облаке

Kubernetes как сервис, инциденты как подписка

Облачный провайдер берёт на себя control plane, а вы берёте на себя чтение страницы статуса провайдера во время инцидента. Всё работает, пока работает.

Плюсы

  • Control plane — не ваша проблема
  • Автоскейлинг нод по кнопке

Минусы

  • Автоскейлинг счёта по той же кнопке
  • Версия Kubernetes выбирается из меню, в котором нет вашей
#7

VMware Tanzu

Kubernetes поверх виртуализации поверх серверов поверх отчётности

Решение для тех, у кого уже есть vSphere и желание добавить к нему ещё один слой абстракции. Контейнеры внутри виртуалок внутри ЦОД внутри презентации для руководства.

Плюсы

  • Интеграция с тем, что уже куплено
  • Знакомый интерфейс для администраторов виртуализации

Минусы

  • Слоёв больше, чем в торте «Наполеон»
  • Название лицензии длиннее манифеста Deployment

Операторы

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

Какой оператор используется чаще всего

Методология: посчитали CRD в своём кластере и экстраполировали на всю планету.

  1. Deckhouse PlatformВыбор сообщества85%
  2. Prometheus Operator5%
  3. cert-manager4%
  4. Strimzi2%
  5. ECK (Elastic Cloud on Kubernetes)2%
  6. CloudNativePG1%
  7. Argo CD1%
#1

Deckhouse Platform

Самый широко используемый сообществом

Оператор, который управляет остальными операторами

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

Плюсы

  • Один reconcile loop, чтобы править всеми
  • Операторы внутри уже совместимы друг с другом
  • Не нужно помнить пятнадцать разных CRD

Минусы

  • Пятнадцать вкладок с документацией операторов больше не нужны, а привычка осталась
  • Нечего писать в разделе «что мы героически починили»
#2

Prometheus Operator

Собирает метрики о том, как плохо всё работает

Превращает мониторинг в набор CRD: ServiceMonitor, PodMonitor, PrometheusRule и ещё несколько, названия которых вы вспомните только во время инцидента. Зато графики красивые.

Плюсы

  • Мониторинг как код
  • Alertmanager — самый честный коллега: пишет в три часа ночи

Минусы

  • Диск под метрики заканчивается всегда внезапно
  • Label-селектор не совпал — и вы мониторите тишину
#3

cert-manager

Выпускает сертификаты, пока не закончится rate limit

Автоматизирует получение TLS-сертификатов и тем самым переносит момент их протухания из «через год» в «когда кто-то сломает ClusterIssuer».

Плюсы

  • Больше никаких напоминаний в календаре
  • Let’s Encrypt бесплатно

Минусы

  • Rate limit Let’s Encrypt тоже бесплатно
  • Challenge завис, а вы — на звонке с заказчиком
#4

Strimzi

Kafka в Kubernetes: две сложные вещи по цене одной

Оператор, который запускает Apache Kafka в кластере. Позволяет получить все радости распределённых логов и все радости StatefulSet одновременно.

Плюсы

  • Kafka поднимается одним манифестом
  • Ребалансировка партиций почти незаметна

Минусы

  • «Почти»
  • Брокер решил пересобрать индекс ровно к релизу
#5

ECK (Elastic Cloud on Kubernetes)

Elasticsearch, который помнит всё, кроме свободного места

Оператор для Elasticsearch и Kibana. Отлично ищет по логам, в которых написано, почему у него закончился диск.

Плюсы

  • Поиск по логам за секунды
  • Kibana радует глаз руководству

Минусы

  • Жёлтый статус кластера — это новая норма
  • Шарды размножаются быстрее, чем ноды
#6

CloudNativePG

PostgreSQL в контейнере: смелость и/или безрассудство

Оператор для PostgreSQL с репликацией, бэкапами и failover. Доказывает, что базу данных можно держать в Kubernetes, если очень аккуратно и с бэкапами в трёх местах.

Плюсы

  • Автоматический failover
  • Бэкапы в S3 по расписанию

Минусы

  • DBA смотрит на вас с недоверием
  • Фраза «база в кубере» всё ещё вызывает тишину на созвоне
#7

Argo CD

Синхронизирует git с кластером, а вас — с реальностью

GitOps-оператор: то, что в git, попадает в кластер. То, что сделано руками, немедленно откатывается, напоминая, что руками делать нельзя было с самого начала.

Плюсы

  • Диф между желаемым и реальным — на одном экране
  • Красивые деревья ресурсов

Минусы

  • OutOfSync после каждого «я просто быстро поправлю»
  • Самоисцеление включено, самообладание — нет

Вердикт редакции

И среди платформ, и среди операторов самым широко используемым сообществом вариантом оказалась Deckhouse Platform. Совпадение? Мы тоже так подумали, пересчитали ещё раз и получили тот же результат. Два раза подряд это уже закономерность, а три — документация.

Если ваш любимый инструмент получил 1%, не расстраивайтесь: он получил на 1% больше, чем наш legacy-монолит.