пятница, 23 апреля 2021 г.

Выбор платформы для Kubernetes

 Если хочется поставить k8s, есть несколько путей, которые будут чуть ниже. При этом готовые продукты это не просто "красивый инсталлер", это ещё и дополнительное ПО - веб из коробки, мониторинг из коробки, RBAC, автомасштабирование, сбор логов -- это "базовый набор". При этом часто автоматом настраивается CI/CD, хранилища.

Rancher

По сути это веб-интерфейс с некоторыми плюшками типа мониторинга, автомасштабирования из коробки.

Сам rancher - изначально делался для расширения возможностей докера, чем потом стал заниматься docker swarm. rancher был "надстройкой" с выбором основы: Cattle, Docker Swarm, Apache Mesos (upstream project for DCOS) or Kubernetes, но похоже что в 2.х оставили только kubernetes.
Ветку советую глянуть.
Если я правильно понял доку, rancher даёт возможность собрать кластер, где часть нод - условный aws eks, часть - gcp, а часть вообще свои сервера.

На обычный хост ставится несложно, но требует установленный докер
sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher

В облака ставится через terraform


kubeflow

В некотором смысле аналог ранчера, но больше с заточкой под ML.
Пара статей для более быстрого введения

OpenShift

Платный продукт от RedHat. Если хочется серьёзное решение, с серьёзной платной поддержкой - это сюда. То, что называется Enterprise Kubernetes. С нужными сертификатами и прочим. Дорого.

Kubernetes by Canonical

Да, есть и такое.

Облачные решения

Имеются в виду такие вещи как aws eks, mail.ru kubernetes (главная страница), yandex kubernetes и так далее, продуктов сотни. Развёртывание - на уровне "создать кластер скриптами", проблемы под капотом обычно неизвестны, но предсказать из невозможно, обезопаситься - сложно. Если нет кучи кубер спецов -- не самый дешёвый, но хороший вариант, снимающий много головной боли и убирающий потребность в сильной DevOps команде.

Руками

Имеется в виду kubeadm, kubespray и подобное. Надо понимать, что будет поставлена только "база", хранилища (ceph, glusterfs), обрабтку логов (ELK и аналоги), мониторинг (prometheus+grafana) надо ставить и сопровождать отдельно.

Готовые сравнения продуктов


Место для тренировок

Есть 4 часа, можно поднять несколько серверов и собрать в кластер.

Итого

Мало взять rancher или openshift. Кластер может просто сломаться, может не пройти миграция на новую версию и всё что угодно. Поэтому если цель - быстро развернуть демо-стенд или поднять дома тестовый кластер, то такие вещи как rancher удобны и адекватны. Но если планируется зарабатывать так деньги -- нужно или купить платную поддержку, или хорошо знать устройство того что стоит, уметь это мониторить, диагностировать и отлаживать. И для готовых образов вопросы мониторинга важнее чем установленной системы руками. Потому что всё когда-то ломается, нужно уметь видеть узкие места и прогнозировать - что, когда и где может пойти не так, как уменьшить шанс отказов и как чинить если отказ был. И по мере установки руками многие моменты становятся понятны, и если там что-то начало сбоить - понятно какие там компоненты применялись и примерно что могло сломаться.

И отдельный вопрос - как хранить данные.

Напоследок - всегда помнить про бэкапы. Лучше несколько дней быть недоступным, но в итоге опять развернуться, чем не развернуться больше никогда (тут привет тем, кто был в датацентре OVZ). Ну и иметь просто возможность отката при любых авариях/косяках.

Комментариев нет:

Отправить комментарий