Size: a a a

2020 November 25

KK

Kirill (Cykooz) Kuzm... in rannts
Хм, ну хрен знает может я просто по другому делал - я скейлил сервис (uwsgi), который не публиковал порт наружу. К нему стучался другой сервис (nginx) по внутренним путям докера. И у этого nginx торчал порт наружу.
источник

RB

Roman Bolkhovitin in rannts
ага, про разное значит, я про кейс когда у самого сервиса порт наружу торчит
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Ну в этом случае же всё равно тебе надо балансировщик, что бы в итоге порт был только один. Так почему бы не запускать этот балансер внутри этого-же композа. Тогда не надо публиковать порт самого сервиса
источник

RB

Roman Bolkhovitin in rannts
просто когда-то я был наивный и думал, что композ умеет за одним портом это все сам делать

типа как в сворме в простейшем случае - ты публикуешь порт у сервиса, и скейлишь его сколько влезет, а сворм сам раскидывает трафик между инстансами.
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Ну в случае самодостаточного сервиса это понятно. А вот если это какой-то питон или подобное, то там чаще всего не рекомендуют голым задом в инетрнет выставлять это. Лучше прятать за каким нить nginx. И выходит что всё равно тебе этот контейнер с nginx нужен.
источник

SZ

Sergey Z in rannts
Тут когда-то давно писали что сварм кластер разваливается без понятной возможности собрать его назад, это актуально? А то я своё мнение составил на такой негативной основн
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Ну если тебе нужен кластер на 2-3 ноды, то скорее всего будет оверкилом юзать кубернетос, который сам наверное сожрёт половину ресурсов этих нод
источник

KK

Kirill (Cykooz) Kuzm... in rannts
А если, как мне, тебе нужен только специфичный деплой "без единого разрыва", то "сворм на одной ноде" тоже позволит довольно быстро решить эту задачу.
источник

RB

Roman Bolkhovitin in rannts
ХЗ, у нас в проде нет... но я такое же слышал про etcd и k8s вместе с ним )))
источник

AS

Artem Savinov in rannts
Kirill (Cykooz) Kuzminykh
Ааа, нахрен это всё - проще руками писать конфиг один раз.
Я просто хотел сделать поддержку скейлинга средствами docker swarm, но при этом реализовать балансировку по хешу от параметра в URL-е.
Но вся эта бадяга скорее всего будет плохо дружить с blue-green deploy, когда у меня одновременно будет старая версия контейнера и обновлённая. На старую надо продолжать гнать пакеты по старым конектам, а новые конекты пихачить в новый контейнер. Если я в этот момент сделаю reload для конфига haproxy, то есть вероятность, что потеряю старые конекты.

Мне не надо скейлить сервисы каждый день, потому проще не юзать возможности масштабирования от докера, а самому руками поднимать столько контейнеров, сколько нужно. И прописать их явно в конфиг для haproxy
тут те может подойдет reverse прокси который можно динамически конфигурить, есть крутая штука для этого - не помню как называется(ищу)
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Artem Savinov
тут те может подойдет reverse прокси который можно динамически конфигурить, есть крутая штука для этого - не помню как называется(ищу)
Ну про то что reload для haproxy разорвёт старые конекты - это я может и приукрасил. Я не проверял. Возможно и будет работать. И у haproxy кстати есть какой-то API
источник

KK

Kirill (Cykooz) Kuzm... in rannts
А про крутую штуку я наверное догадываюсь - балансировщик на C++. Тоже забыл как называется. Недавно смотрел в него, но отказался, т.к. он пока ещё молодой. Даже не умеет в балансировку по хешу от параметра из HTTP запроса.
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Вспомнил - Envoy
источник

AS

Artem Savinov in rannts
да- он
источник

AS

Artem Savinov in rannts
Kirill (Cykooz) Kuzminykh
А про крутую штуку я наверное догадываюсь - балансировщик на C++. Тоже забыл как называется. Недавно смотрел в него, но отказался, т.к. он пока ещё молодой. Даже не умеет в балансировку по хешу от параметра из HTTP запроса.
а haproxy так умеет?
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Да, haproxy умеет, nginx умеет. А вот Envoy только банальный раунд-робин умеет
источник

KK

Kirill (Cykooz) Kuzm... in rannts
haproxy ещё умеет lua скрипты выполнять, на которых наверное можно вообще любую балансировку сделать.
источник

AS

Artem Savinov in rannts
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Хм, когда я на него смотрел этого не было
источник

AS

Artem Savinov in rannts
не понял что скрывается за этими словами "like all hash-based load balancers, it is only effective when protocol routing is used that specifies a value to hash on." , но может и то что тебе надо
источник