Коллеги, добрый день. В свете последних тенденций хочется перейти на что-то "модное" как докер или кубернетс. Из-за этого возникает вопрос - а куда идти-то?
В моем понимании докер позволяет сделать очень простую оркестрацию своим swarm/stack методом (прямо сейчас на дев стенде я использую связку portainer+swarm. первый управляет docker-compose из gui, второй все "оркестрирует"), однако с ним проблема в том, что докер совсем не следит за состоянием самих нод - если одна ООМится, ушла и тп, то докер сможет задеплоить контейнер на новой, однако даже если остается 1/5 нод, то он постарается запихнуть все-все контейнеры в нее (возможно это настраивается на уровне лимитов, но как по мне они работают не всегда корректно).
Как я понимаю, эту проблему решает кубернетс - это некая надстройка(??) (тут не совсем все-таки понятно, что это до конца) над докером, которая будет следить за состоянием своих PODов, мигрировать контейнеры и т.п.
Есть для "простых" - rancher. Сейчас он кажется работает только с кубером и представляет собой GUI для управления (хотя тут встает вопрос - зачем, если есть стандартный Kubernets gui от гугла). Или ранчер делает что-то еще, тут вопрос.
Собственно, у меня вот такие мысли и размышления по этому поводу. Мне хочется избавиться от проблемы докера (особенно когда сворм все запихивает на одну оставшуюся ноду), и попрпобовать что-то новое.
Что бы вы посоветовали и почему? Почему кубер, а не ранчер. Или наоборот.
И есть ли адекватные gui для управления кубером?
Спасибо.
Илья, посмотри на ютюбе и прочти на хабре блог компании Флант, они молодцы, все расскажут нормально, и понятно, а если кратко:
Докер это сущность где запускаются приложения, это что то типа виртуалки но это не виртуалка а изоляция процессов контейнера, это движок, где работает приложение, все.
Для управления множеством контейнеров, и для очень многих вещей (не буду повторяться, посмотришь) нужен аркестратор, их несколько, самый популярный это kubernetes.
Rancher в свою очередь является инструментом для установки kubernetes, в старых версиях у них был свой аркестратор, на выбор, но потом его закрыли.
А про ui забудь)) ты через него ничего не сделаешь, у ранчера более менее продвинутый ui, но пользы очень мало.
Ребята из фланта постоянно выступают на хайлоде. Сначала они придумывают проблему и рассказывают как ее решали, а через год рассказывают что так делать было неправильно )
Kubernets это как swarm только swarm плохой и умер.
gui от гугла никто не юзает, rancher более продвинутая штука, можно создавать кластера, управлять и тд.
и внутри ranchera кубер, т.е. ты можешь сетапить кубер ранчером или кубспеем или кубадмом... но там везде кубернетес)
то есть краткий бриф: сворм - плохо, лучше отказать. гуи от кубера - фу (кстати, почему?)
и самый лучший(??) гуи для кубера - ранчер? или есть что-то еще более удачное?
плюс вопрос, можно ли как-то так же быстро разворачивать docker-compose в кубере (гуи ранчере)? у меня почему-то не получилось..
окей, а давайте ещё один вопрос. может я чего-то недопонимаю.
прод на докере работает? купил я вот у Я.Облака виртуалку. дома разрабатывал, писал компоуз файл, грузил образ в докер хаб и хочу запустить продакшн быстро.
всё-таки докер в своем понимании может стать таким продакшеном? или опять же нужно будет кубер разворачивать?
(хотя продакшн из одного инстанса - это сильно, но просто я постарался привести самый простой пример)
gui от гугла - если это про GKE то это ок (я про дашборд подумал), но гугол за тебя будет апдейтить кластер, следить за мастерами и тд и за это нужно платить.
если нужно самому развернуть и нужен гуй то ранчер наверно ок.
docker-compose нельзя развернуть, есть тулза которая конвертит композ в манифесты для кубера но нужно всеравно понимать че куда. в кубере свои примитивы.
если для прода хватает 1 ноды юзай композ
это дашборд который ставится уже в развернутый кластер, а ранчер из его гуя позволяет создавать кластера и управлять ими и все то что может тот дашборд и больше.
ты можешь создать ранчером кластер и поставить туда еще тот дашборд если нужно, но скорее всего не нужно)
дашборд работает внутри кластера, а ранчер над кластерами и внутри также и больше.
прод на докере работает? купил я вот у Я.Облака виртуалку. дома разрабатывал, писал компоуз файл, грузил образ в докер хаб и хочу запустить продакшн быстро.
всё-таки докер в своем понимании может стать таким продакшеном? или опять же нужно будет кубер разворачивать?
Если мы говорим о единственном контейнере, то разумеется Kubernetes не нужен. Но и продакшен это сегодня назвать трудно - нет high availability, [auto]scaling, zero-downtime deploy и т.п.
Kubernetes позволяет оркестрировать много компонент (micro-services), для каждой из которых можно задать свои требования по CPU/RAM, свои правила для [auto]scaling, deploy.
Илья Родионов, стандартный дашборд k8s позволяет полноценно управлять кластером. Просто люди любят кнопочки/гуи и не любят разбираться в тонкостях технологии. При этом нужно понимать, что Rancher вводит дополнительные абстракции, которых в нативном кубере нет.
Ранчер ставит кубер на базе докера (containerd/runc), но также бывают инсталляции на cri-o (от RedHat). На crio полноценно Ранчер поставить пока ещё нельзя.
Теперь про compose: это изначально формат докера (и ранчера с cattle), в кубере вместо compose используются yaml-файлы спецификаций. Но есть конвертеры compose2kubernetes.
Чтобы выбрать технологию, необходимо знать ваши требования: размер кластера, рабочая нагрузка, типы серверов.
Kubernetes - это оркестрация для докер, помимо поддержания нужного кол-ва контейнеров K8S умеет деплоить разными способами, делать auto-scaling несколькими способами, и т.д.
Я бы посоветовал начать с Kubernetes.
Rancher в моем понимании это "надстройка" над Kubernetes, которая должна облегчить deploy / upgrades, работать с multi-cluster configuration и в целом создать "более умный" API.
такой же комментарий и к вам: как вы считаете, какой гуи выбрать? стандартный дашборд от гугла ВНУТРИ кубера или внешний ранчер как надстройка над кубером?
Илья Родионов, скажу честно - не знаю. Я еще не работал с ранчер, а в Kubernetes в основном пользуюсь CLI и немного dashboards GKE (managed Kubernetes from Google Cloud).
Меня пугают дополнительные надстройки, возможно я не прав.