Etki
там тоже все выливается в ENV-переменные
Dmitry
Dmitry
тогда шикарно - буду пихать в переменные среды
Etki
либо в файлы - тут уже как удобнее
Dmitry
супер, @takama , @etkee спасибо за инфу!
буду кодить тогда с использованием docker-compose
последний вопрос: для связки API ендпоинтов используете nginx?
например, есть 2 сервиса, которые доступны из внешнего мира по адресам:
1) /api/users
2) /api/tasks
и чтобы сделать единую точку входа для клиентов (example.com/api/...), то тут нужен nginx по идее, верно?
кстати, конфиг nginx в этом случае тоже будет выглядеть необычно - т.к. он не знает четких IP, на какие сервисы перенаправлять запросы
или nginx тоже будет перенаправлять запросы на кластерные IP?
Etki
супер, @takama , @etkee спасибо за инфу!
буду кодить тогда с использованием docker-compose
последний вопрос: для связки API ендпоинтов используете nginx?
например, есть 2 сервиса, которые доступны из внешнего мира по адресам:
1) /api/users
2) /api/tasks
и чтобы сделать единую точку входа для клиентов (example.com/api/...), то тут нужен nginx по идее, верно?
кстати, конфиг nginx в этом случае тоже будет выглядеть необычно - т.к. он не знает четких IP, на какие сервисы перенаправлять запросы
или nginx тоже будет перенаправлять запросы на кластерные IP?
Конкретно у нас в проектах есть апи-прослойка, которая смотрит наружу и занимается только дерганьем остальных сервисов. Т.е. пришел запрос - прослойка отправляет токен на верификацию в менеджер пользователей, в случае успеха начинает оббивать другие сервисы, и, если нужно, мерджить сущности.
У прослойки свой собственный API, который и является API всего приложения. Сама прослойка в кубе в таком случае была бы обычным сервисом, который смотрел бы наружу прямо или за nginx'ом/аналогом.
Igor
Мы для всего внешнего используем HAProxy
Igor
HAProxy нам дает и балансировку и High Availability и Failover
Dmitry
понял
вариант с кастомным сервисом, который принимает запросы из внешнего мира и перенаправляет все во внутренние сервисы звучит очень разумно - плский с бубном вокруг конфигов nginx'а отваливаются
Dmitry
там ведь тоже конфиг, как у nginx'а, с фиксированными айпишниками
Etki
и хапрокси, и nginx умеют резолвить днс-записи, и, таким образом, попадать на айпишники сервиса
Etki
В самом крайнем случае можно попробовать подцепить в pod confd или аналог и заставить его пересобирать конфигурацию конечного сервиса. Там те еще костыли получатся, но работать должно.
Igor
Каждый сервис может также легко реплициоваться, главное чтобы удовлетворял всем факторам. HAProxy настраивается по ACL - в которых куча всяких условий может быть отражена. Но в вашем случае скорее всего нужно будет либо применять еще nginx - либо как-то также заводить провайдера со своим API
Dmitry
а кто будет обновлять днс записи?)
например: по внутреннему адресу 192.168.22.22 был доступен сервис и nginx туда корректно перенапрвлял по DNS записи: "service_users: 192.168.22.22"
но сервис отвалился и рестартанул уже по адресу 192.168.22.23, а DNS запись осталась прежней
получается тут должен быть кластерный IP с "умным балансировщиком", который сам обновляет DNS записи
Igor
За такими вещами HAProxy и следит с помощью health check, если сервис отвалился, он исключается из балансировки, пока не будет снова доступен
Igor
в случае с HAProxy Kubernetes и DNS не обязательны :)
Dmitry
Dmitry
HAProxy то все равно должен ходить к etcd узнавать, какие сервисы не умерли
а каждый сервис должен сообщать о себе в etcd, что он живой, верно?)
Igor
Да, health check могут буть любого типа, в Haproxy настраивается как опрашивать каждый сервис
Igor
там можно просто проверят жив ли сервис по TCP, можно по HTTP опрос делать, да еще сравнивать результат - вариантов масса
Dmitry
да, но когда поднялась новая реплика какого-то сервиса, то окружающая среда и HAProxy как-то должны узнать, что есть новая реплика и можно на нее слать запросы
Dmitry
я думал ввод нового сервиса в среду делается через etcd
Igor
Конечно, с помощью health check от HAProxy он определяет, что сервис жив и снова его включает в балансировку
Igor
Похоже тут начали говорить уже о разных вещах :)
Dmitry
зарезолвит днс еще через 10 секунд. если сервис не headless, то kube-dns обновит записи, соответствующие виртуальному айпи, там все на уровне iptables, и haproxy даже не заметит, что произошло
да, в кубернете я видел на видео, что там все это уже реализовано)
я думаю, как это сделать так, чтобы было отвязано от кубертнета, но в то же самое время можно было легко встроить контейнеры в среду, где есть кубернет)
Igor
Если хотите получить High Alailability и Failover не в контейнерах - то HAProxy достаточно одного. Если речь о контейнерах, то там полный набор включая Kubernetes, ETCD и HAProxy (Ingres)
Etki
кубернетес у тебя на продакшен и стейджинге, на рабочей машине у тебя просто не будут падать сервисы, делаешь им статический днс любыми способами и все
Dmitry
понял, спасибо!)
пойду запилю демку
Alexander
▫️Какой у вас проект или где работаете? Selectel
▫️В чём вы специалист? Системное администрирование, CI/CD
▫️Чем можете быть интересны или полезны сообществу?
▫️Чем интересно сообщество вам? Только-только окунулся в k8s и словил много непонятностей
▫️Откуда вы? spb
▫️Как узнали про группу? @dkostenko
#whois
Anonymous
А чем OpenStack отличается от кубернетес или месос?
Anonymous
лол
Anonymous
там не только виртуалки, грубо говоря
Anonymous
днс, файлопомойка и всё такое
Anonymous
Ну и?
Anonymous
А месос и куб?
Anonymous
а это оркестрация виртуалок и контейнеров
Anonymous
(хотя я не уверен, что в месос есть виртуалки)
Anonymous
Небольшая разница вроде? Опенстак вроде не готов в продакшкн и половины фич нету
Anonymous
лол
Anonymous
ракспейс, наса, ред хат, куча более мелких провайдеров
Anonymous
ну и половины каких фич? которые не являются целевыми для опенстэка?
Anonymous
это ведь не средство оркестрации
Anonymous
хер с пальцем сравниваешь, грубо говоря
Igor
IAAS - OpenStack, PAAS - Deis, etc Kubernetes - Container Management System
Igor
Любая IAAS, PAAS может содержать и интрегрировать Container Management System
Igor
Если Kubernetes, то можно посмотреть в сторону OpenShift
Igor
https://www.openshift.org/
Anonymous
Все равно не понятно чем отличаются
Igor
Инфраструктура -> Платформа -> Оркестрация
Igor
отличаются иерархией
Igor
Это как операционка -> сервер -> сервис
Anonymous
Но все эти платформы умеют запускать виртуалки
Igor
Витруалки и контейнеры они сквозь пространство и время :)
Igor
И в контексте и вне контекста
Igor
а тут разве сравнивают vm и контейнеры? :)
Igor
Mesos умеет управлять и виртуалками и контейнерами
Anonymous
Ладно. Месос от Опенстака чем отличается?
Anonymous
Ну это ты так думаешь
Igor
Месос - средство оркестрации, Опенстэк - инфраструктура
Sergey
гуглим на слова IAAS PAAS CAAS и всякие там асы
Sergey
и что к чеиу относиться
Sergey
какие задачи решает
Sergey
да некоторые вещи могут пересекаться
Anonymous
Опенстак тоже оркестрация тогда как и месос)
Igor
Опенстэк - инфраструктура, то есть все что угодно вместе взятое :)
Sergey
не кормите троля
Igor
Ну в общем да, лучше идти по пути просвящения, посмотреть пару видео по теме, потом уже более интересные вопросы задавать.
Anonymous
Ну если вы не знаете так и скажите. На простой вопрос ответить не можете. А описания я читал
Sergey
Вам ответили
Sergey
Думать за Вас никто тут не будет
Anonymous
Ты ничего не ответил. Значит профан
Sergey
Где?
Sergey
Сергей, [16 окт. 2016 г., 16:19]:
гуглим на слова IAAS PAAS CAAS и всякие там асы
и что к чеиу относиться
какие задачи решает
да некоторые вещи могут пересекаться
Anonymous
Лол. Это что ответ? Я тоже могу сказать иди гугли пацан
Anonymous
Сергей иди гугли
Sergey
А вы для начала не пробовали себе поднять тестовые кластера и посмотреть что они делают, ну на уровне, если тупость Вам не позволяет понять по прочитаному кадая система делает