
Айбелив
27.08.2017
12:03:14
а я больше программист) хотя я уже не уверен)

Сергей
27.08.2017
12:04:11
не меня Бог миловал

Айбелив
27.08.2017
12:07:58
а, ещё проблему вспомнил про Voyager.
Он плодит контроллеры, и первый созданный занимает порт. Второй контроллер не стартанёт на том же порте.
проблема бы совсем и не была проблемой, если использовать сервисы с типом LoadBalancer, но у меня baremetal

Google

Сергей
27.08.2017
12:10:45
ну как бы кубер сильноопирается на облачную инфраструктуру
тут да
хотя елб то еще гуано у авс
https://github.com/kelseyhightower/istio-ingress-tutorial
если кто еще не видел

Paul
27.08.2017
12:54:34
модераторы?

Alisa
27.08.2017
13:08:42
бампнул Дениса

Gleb
27.08.2017
14:28:02

Айбелив
27.08.2017
14:29:34

Gleb
27.08.2017
14:29:40
там есть

Айбелив
27.08.2017
14:35:47
есть опыт?
Можно ли терминировать TLS-трафик на контроллере, взять хэш клиентского сертификата, повесить заголовком на реквест и отправить дальше по роуту?

Google

Сергей
27.08.2017
14:45:29
Ну истинно изначально для других целей

Ivan
27.08.2017
16:14:15
Товарищи, кто нибудь может подсказать как сделать правильно, если мне надо иметь возможность самому выбирать с каким сервером соединяться (игровые сервера), выходит лоад бэлэнсер мне не нужен
Как правильно пошарить сервер наружу?

Paul
27.08.2017
16:26:40

Kaspar
27.08.2017
16:33:38
если так, то можно шардировать юзеров по юзер-айди например

Сергей
27.08.2017
16:46:13
Клиент сайд сервис Дискавери

Kaspar
27.08.2017
16:47:15
шардированием можно в ногу выстрелить позже при масштабироании, надо думать заранее хорошо

bebebe
27.08.2017
16:47:18

Kaspar
27.08.2017
16:47:27
баду, кажется, на хайлоаде рассказывали про похожий подход
таймкод на распределение запросов https://youtu.be/SU9ETg39FEg?t=9m45s

Ivan
27.08.2017
17:38:06

Kaspar
27.08.2017
17:38:59
протокол какой?

Ivan
27.08.2017
17:39:42
Udp
Сейчас я на азуре ноде руками public ip ставлю, но это костыль

Kaspar
27.08.2017
17:43:36
цель балансить юзера при подключении на наименее загруженный сервак на все время его сесии?

Ivan
27.08.2017
17:48:16
Да, это делает кастомный сервис. Цель как то спрятать поды за одним эндпойнтом но по разным портам

Kaspar
27.08.2017
17:48:34
может попробовать просто nginx, с версии 1.9.13 он может балансить udp.
раунд робином или least_conn может подойдет

Google

Ivan
27.08.2017
17:49:35
Робин точно не подойдет

bebebe
27.08.2017
17:49:58
openresty + хождение в статистику и выбор балансера

Kaspar
27.08.2017
17:50:00
least_conn или hash по айпи юзера может тогда
на lua велосипед написать можно. Решение тут возможно нужно кастомное

bebebe
27.08.2017
17:50:29
хотя я бы на вашем месте в протокол внедрил редирект
т.е. первый на определенный запрос, был специальный тип пакета, идите туда, типа http 302

Kaspar
27.08.2017
17:50:50
в играх скорость нужна. Будет быстро

bebebe
27.08.2017
17:51:50
я не знаю насколько там легаси, но все таки делал бы перед входом http/udp/whatever запрос куда слать пакеты
а там какую угодно логику можно запилить

Kaspar
27.08.2017
17:52:55
ну да, тут смотря почему хотят балансить. Коннектов много или тачки не выдерживают. Тогда можно сходить в метрику и где больше проца avg(15min) туда и отправлять
требования расплывчаты

bebebe
27.08.2017
17:54:23
балансить уже второй вопрос, первый это реализовать в протоколе сам метод, типа дайте ip:port

bebebe
27.08.2017
17:54:46
а на каком принципе будет их отдавать балансер - дело сугубо личное
я не до конца понимаю, какова цена таких изменений
и возможны ли они в случае топикстартера

Kaspar
27.08.2017
17:56:50
не имел дела с гейм серверами. С одной сторы интересно, с другой - udp мрак

bebebe
27.08.2017
17:57:35
мрак не мрак, но как бы контролируемо


Ivan
27.08.2017
17:58:23
Ща, домой приеду напишу более подробно требования
Ща, домой приеду напишу более подробно требования
Короче игровые сервера представляют собой что-то вроде комнат, по комнатам игроков распределяет отдельный сервис - матчмейкинг.
Данный сервис сначала собирает группу игроков на основе ряда параметров, но примерно равных по силе, и затем должен поместить их всех на один сервер.
Таким образом матчмейкинг отдаёт клиентам ip:port для соединения и дальше игроки соединяются с сервером. В рамках матча сервер меняться не может. Именно поэтому стандартные балансеры не подходят.
Общение с игровым сервером происходит по определенному порту, по udp протоколу.
Один сервер может обслуживать только один матч. Поэтому балансировка происходит за счёт поднятия большего количества серверов.
В моем понимании каждый сервер - под. При поднятии пода должен быть создан маршрут: сгенеренный порт паблик эндпойнта на порт пода на ноде. Этот маршрут не меняется пока с подом что-то не случится.
Я вот не знаю как в азуре при поднятии пода регистрировать такой маршрут


Сергей
27.08.2017
19:37:30
Nodeport?

Google

Сергей
27.08.2017
19:39:02
https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
Ну тупо сервис из одного пола
Пода

Ivan
27.08.2017
19:42:24
Ну это то что я сейчас типа сделал, каждый под запускается с net=host и сам выбирает порт, но я не могу на азуре автоматом генерировать паблик ip для ноды
Приходится ручками настраивать

Сергей
27.08.2017
19:43:50
Это не то что вы сделали
Ну и с ажуром дел не имел давно

Admin
ERROR: S client not available

Ivan
27.08.2017
19:44:31
Можно на ты, если что)
В чем моя ошибка?
Node port азура не поддерживает

Сергей
27.08.2017
19:45:27
Не ошибка просто это не нет хост, это у вас сервис марается на айпи ноды на порт из диапазона выше 3000
При чем на все ноды где кубпрокси есть
Ну тут вам виднее
Я ажур не трогал в разрезе кубера
Хотя нодпорт это же базовый функционал
Че там в ажуре такое шоб оно не работало?
В фаерволе порты не открыты разве что
Ну или реально на нодах нет белых айпи.

Ivan
27.08.2017
19:57:37
А если надо несколько серверов на ноде запустить, как node port это разрулит? Нужно несколько с
Копий сервиса делать?

Google

Paul
27.08.2017
20:07:16
балансировщик, нет?

Сергей
27.08.2017
20:12:13
Нет сколько сервисов столько портов
Там их диапазон
А внутри сервиса один или более копий пода
Но вам несколько родов в одном сервисе нах не надо я такипонялт

Paul
27.08.2017
20:13:48
а нужно трекать весь диапазон, один порт не вариант? С одним можно было бы как-то поиграть, ИМХО
а вот с диапазонами балансировщики, вроде как, пока не умеют

Ivan
27.08.2017
20:15:40
Вся проблема текущих вариантов, что они заточены под стейтлес

Сергей
27.08.2017
20:18:39
Да в ямле пропишите любой свободный из диапазона

Maksim
28.08.2017
09:43:13
Каждый сервис типа NodePort это конкретный порт, который днатится также как и Cluster IP в ряд ip endpoint (которыми являются поды)

Ivan
28.08.2017
09:44:05

Maksim
28.08.2017
09:44:15
При этом все Ноды открывают этот порт
Сервис нужен что бы отвязаться от динамического IP пода
и что бы сделать балансировку если подов больше одного

Ivan
28.08.2017
09:48:25
Каждый сервис типа NodePort это конкретный порт, который днатится также как и Cluster IP в ряд ip endpoint (которыми являются поды)
я вот не понимаю, за этим конкретным портом, может скрываться >1 пода? если я буду оперировать nodeip:port, то это мне, может, и подойдет, если на ноде один такой под крутится, но если мне нужно несколько подов на ноду, то нужно тогда делать несколько NodePort, что опять же предполагает, что я это делаю ручками и гранулярность подов не будет регулироваться автоматически

Maksim
28.08.2017
09:49:27
Ммм Ты совсем запустался и не туда смотришь
Сервис объеденяет поды
например у меня 10 Nginx