
Yaros
20.10.2018
19:21:19
всем привет, есть такая проблема:
есть набор сервисов, A, B1, C1, D1. Есть их другая версия, с другой конфигурацией немного: B2, C2, D2. Логинятся все через сервис A после чего он помимо логина может вернуть адреса либо сервисов B1, C1, D1, либо адреса B2, C2, D2 в зависимости от того, кто залогинился. По сути этот сервис просто читает эту информацию из таблицы в базе данных, где написано, что юзер1 - B1 а вот юзер2 - В2. Разумеется версий сервисов может быть больше и нужно постоянно конфигурить кто и куда обращается по каким логинам. Как эту конфигурацию правильно привязать к версиям сервисов в кубернете? Мы сейчас мигрируем инфраструктуру туда и думаем как это сделать правильно. Потому, что все брать из этого сервиса А кажется вообще неверным.
Извиняюсь за стену текста, на вопросы по тексту отвечу.
возможно это не относится к кубернету напрямую, но сюда поместил, так как думал, что решается чем-то типа консула или чего-то подобного.


Эдуард
20.10.2018
19:42:03
всем привет, есть такая проблема:
есть набор сервисов, A, B1, C1, D1. Есть их другая версия, с другой конфигурацией немного: B2, C2, D2. Логинятся все через сервис A после чего он помимо логина может вернуть адреса либо сервисов B1, C1, D1, либо адреса B2, C2, D2 в зависимости от того, кто залогинился. По сути этот сервис просто читает эту информацию из таблицы в базе данных, где написано, что юзер1 - B1 а вот юзер2 - В2. Разумеется версий сервисов может быть больше и нужно постоянно конфигурить кто и куда обращается по каким логинам. Как эту конфигурацию правильно привязать к версиям сервисов в кубернете? Мы сейчас мигрируем инфраструктуру туда и думаем как это сделать правильно. Потому, что все брать из этого сервиса А кажется вообще неверным.
обозвать ингрес разными урлами?

Google

Vadim
20.10.2018
19:42:58
всем привет, есть такая проблема:
есть набор сервисов, A, B1, C1, D1. Есть их другая версия, с другой конфигурацией немного: B2, C2, D2. Логинятся все через сервис A после чего он помимо логина может вернуть адреса либо сервисов B1, C1, D1, либо адреса B2, C2, D2 в зависимости от того, кто залогинился. По сути этот сервис просто читает эту информацию из таблицы в базе данных, где написано, что юзер1 - B1 а вот юзер2 - В2. Разумеется версий сервисов может быть больше и нужно постоянно конфигурить кто и куда обращается по каким логинам. Как эту конфигурацию правильно привязать к версиям сервисов в кубернете? Мы сейчас мигрируем инфраструктуру туда и думаем как это сделать правильно. Потому, что все брать из этого сервиса А кажется вообще неверным.
похоже на traffic shifting в istio

Alexey
20.10.2018
19:43:33

Yaros
20.10.2018
19:43:45
@volarenege и как это решает проблему? Ну то есть как ингресс поможет отправлять определенным образом залогиненых клиентов к определенным сервисам? Кто хранит соответствие это между урлом и сервисом?

Alexey
20.10.2018
19:44:06
Если не болит, если ли смысл пробовать istio, станет проще жить?

Yaros
20.10.2018
19:44:29
@vrutkovs чекаю istio, спасибо за наводку ?

Alexey
20.10.2018
19:45:21
в чем проблема делать
/pathB1
/pathC1
/pathD2
?

Yaros
20.10.2018
19:46:42
@alexesDev не совсем понял, там же один и тот же клиент подключается к сервису А

Эдуард
20.10.2018
19:46:51

Yaros
20.10.2018
19:46:52
кто его разводит на то, к какому сервису ему дальше идти?

Эдуард
20.10.2018
19:46:59
только самописюкать

Alexey
20.10.2018
19:47:24

Yaros
20.10.2018
19:47:56
а кто синхронизирует деплои версий других сервисов и обновляет урлы в А?

Alexey
20.10.2018
19:48:26

Google

Alexey
20.10.2018
19:49:19
multi tenancy это жеж?

Yaros
20.10.2018
19:49:59
@alexesDev сейчас так: деплоим сервисы В1 и В2, берем их урлы, этим юзерам прописываем в базе В1, а вот этим В2. Все это руками, благо деплои не так часты. Периодически это путает кто-то из админов и все валится. Думаем как уйти от этого переезжая на к8, а то странно, что также все руками делать
@alexesDev но идейно да, сделаем на каждый деплой сервис со своим урлом и засунем их в базу. Это план на сейчас такой.
@alexesDev да-да, наш убойный мультитенанси ?

Alexey
20.10.2018
19:51:41
ну пользователей вы руками делите на 1 и 2? Ну и деплой будет так же... или нужно делить автоматом и уже деплой будет дальше так же.
Я плохо знаю эту сторону, но похоже вам в сторону своего оператора идти...

Yaros
20.10.2018
19:53:34
Да, руками делим и это порождает ошибки, разумеется. А что за свой оператор такой?

Alexey
20.10.2018
19:54:48
на практике я этого не делал, а тема интересная. По запросу
multi tenant kubernetes
много чего есть

Yaros
20.10.2018
19:59:26
@alexesDev спасибо, буду гуглить! уже смотрю на istio и вот это нашел, вдруг кому полезно будет: https://www.youtube.com/watch?v=xygE8DbwJ7c

Alexey
20.10.2018
20:03:19
Я бы попробовал что-то попроще k8s вроде nomad (просто, чтобы удобно было оркестрировать) + виртуалка на клиента. Меньше шансов ошибиться. Цена таких ошибок в B2B крайне высока.

Yaros
20.10.2018
20:07:05
у выбора нет, уже к8s и rancher

Psy
20.10.2018
20:21:12

ал
20.10.2018
20:30:15
По увядшей листве?

Мы идём в тишине
20.10.2018
20:32:48
▫️Какой у вас проект или где работаете?
Bizzabo - event management platform.
▫️В чём вы специалист?
Node, frontend, Docker
▫️Чем можете быть интересны или полезны сообществу?
Задаю нубовские вопросы.
▫️Чем интересно сообщество вам?
Недавно стал осваивать k8s, может пригодиться помощь бывалых девопсов.
▫️Откуда вы?
Харьков, Украина
▫️Как узнали про группу?
Предположил, что такая существует, ну и через поиск Телеграм в этом убедился.
В сообщении нужно указать тэг #whois

ал
20.10.2018
20:35:24

Мы идём в тишине
20.10.2018
20:36:29
Да не было, не было
Но основной посыл ясен, ты тоже в теме, что это цитата из песни

ал
20.10.2018
20:37:36

Google

Мы идём в тишине
20.10.2018
20:38:42
лукич жив!
Радует также, что не считаешь автором Летова. Точно шаришь
Нас тут за оффтоп не того?

ал
20.10.2018
20:40:20
да, для оффтопа надо в devops_jobs, тут вроде лучше не разводить

Timur
20.10.2018
20:41:19
Надо послушать Лукича, как-то он мимо меня прошел совсем...

Yaros
20.10.2018
20:46:53
@alexesDev а что не так с istio? я что-то смотрю демку на катакоде и просто кажется очень крутой. Какие подводные камни\проблемы при работе с реальными приложениями?

Vadim
20.10.2018
20:48:41
Это как с базами - все боятся и ждут фиксов

Alexey
20.10.2018
20:49:22

Vadim
20.10.2018
20:49:23
На прошлом кубконе был доклад про енвой - это + ~10мс к лейтенси

Yaros
20.10.2018
20:50:02
+10 мс к каждой коммуникации между сервисами? Или вообще +10?

Vadim
20.10.2018
20:52:01
Судя по всему к любым, но тут YMMV

Yaros
20.10.2018
20:53:19
я уточнил, так как читал вчера-сегодня их доки и презентации смотрел и они говорят что ох как же они быстры! Поэтому ко всему +10мс как-то сурово ...

Vadim
20.10.2018
20:54:17
Это год назад было, может допилили

Dmytro
21.10.2018
06:06:12

Vasiliy
21.10.2018
06:27:17
patroni
/thread
@Andorka @anti_on @j3qq4_h7h2v_2hch4_m3hk8_6m8vw
Парни, я тут немного слоупочу
А что вы думаете про postgresql-operator против патронов ?

Stanislav
21.10.2018
06:29:54
меня можно не спрашивать - просто не думал на эту тему

Anton
21.10.2018
06:40:14

Vasiliy
21.10.2018
06:41:56
да я вот тоже почитал про операторы и загорелся идеей закинуть это дело в кубер.
Может получится протащить против идеи про выделенные БД :)

Andor
21.10.2018
07:48:19

Google

Alexey
21.10.2018
07:49:20

Anton
21.10.2018
08:09:32

Andor
21.10.2018
08:11:13
Столон
Или всё ещё говорят "делайте пул в приложении"?

Anton
21.10.2018
08:16:00
Нет пула, да и в целом к кубу гвоздями прибивается

Lucky SB
21.10.2018
08:26:57
Соткой и насквозь?
Я тут постгрес оператора от кранчи посмтрел... жалкое зрелище

Andrey
21.10.2018
08:28:02

Alexey
21.10.2018
08:28:22
есть еще от zalando оператор

Lucky SB
21.10.2018
08:31:07
Те же чарты с инит скриптами. Вид сбоку

Andrey
21.10.2018
08:32:36

Anton
21.10.2018
08:35:15

Andrey
21.10.2018
08:40:15
Я пока доки кранчи поковырял, там многое ручками, kubedb посимпатичней показался
Там, на самом деле, куча приколов. Например, в ходе тестов выяснилось, что leader election абсолютно не учитывает состояние бд, поэтому при сносе данных с одной базы она пересоздавалась чистой из инит-скриптов и смогла получить лидерство, а все остальные реплики, одна из которых должна была бы стать мастером, дружно писали в лог о том, что ID у мастера и слейва отличаются. Плюс, иначе как руками пока что отдельно взятую реплику из бэкапов не восстановить. Вот, что сходу пока выяснили.

Andor
21.10.2018
08:45:01
Причём патрони не прибит гвоздями к куберу

Anton
21.10.2018
08:50:56
Там, на самом деле, куча приколов. Например, в ходе тестов выяснилось, что leader election абсолютно не учитывает состояние бд, поэтому при сносе данных с одной базы она пересоздавалась чистой из инит-скриптов и смогла получить лидерство, а все остальные реплики, одна из которых должна была бы стать мастером, дружно писали в лог о том, что ID у мастера и слейва отличаются. Плюс, иначе как руками пока что отдельно взятую реплику из бэкапов не восстановить. Вот, что сходу пока выяснили.
это kubedb?

Andor
21.10.2018
08:56:30
Насколько мне известно - всё с ним норм

Andrey
21.10.2018
08:56:41
это kubedb?
Да. Вообще, мне кажется, что операторы без тестов и чтения исходников юзать не стоит.

Lucky SB
21.10.2018
08:59:11
Там, на самом деле, куча приколов. Например, в ходе тестов выяснилось, что leader election абсолютно не учитывает состояние бд, поэтому при сносе данных с одной базы она пересоздавалась чистой из инит-скриптов и смогла получить лидерство, а все остальные реплики, одна из которых должна была бы стать мастером, дружно писали в лог о том, что ID у мастера и слейва отличаются. Плюс, иначе как руками пока что отдельно взятую реплику из бэкапов не восстановить. Вот, что сходу пока выяснили.
А как данные сносили? Я первый раз запустил без персистенс пулов. И грохнул под с мастером. И похоже куб под запустил вперед оператрра и там как раз пустая база получилась. В итоге все поды убились, новые создавались. Данные помылись

Google

Andrey
21.10.2018
09:00:00
А, еще можете пришибить под с репликой во время recovery mode
И еще, иногда при одновременном убийстве всех экземпляров все они потом запускаются в качестве реплик
Короче, уронить кластер pgsql под управлением kubedb как нефиг делать

Banschikov
21.10.2018
09:05:07

Anton
21.10.2018
09:06:47
Надо патрони поковырять, на фоне ваших историй stolon попредсказуемей, если дропнуть бд он говорит что id базы отличается и переключит мастера на реплику, а там где занулено нужно сделать removekeeper,
И нуленка стенет репликой и с мастера закопирует данные

Andrey
21.10.2018
09:08:21

Anton
21.10.2018
09:13:18
Подскажите для postgresql в kubernetes вы что используете? Nodeport, loadbancer, ingress?

Eugene
21.10.2018
09:14:53
(но вообще я бы постгрес не держал в кубернетисе)

Alexey
21.10.2018
09:16:19
почему?

Andrey
21.10.2018
09:17:45