LINUX.ORG.RU
ФорумAdmin

Sip и swarm

 , ,


0

1

Посоны, кто-нибудь хоть раз сращивал сип со свармом? Сварм затем что все остальное под ним, и пилить рядом отдельный стек того же pcmk будет жёстко, а рулить станциями вручную это совсем кисло.

Дано - два выходных фрисвича, регистраций нет, только работа с провайдером, так что по сути оно stateless в глобальном плане (sip-сессии разумеется надо держать)

Все rtp выставлены в host-mode, плюс торчит 5060 ингресс со свармовой балансировкой. В сессии отправляется белый адрес ноды, так что rtp вроде все ок, приходит куда сказали.

Балансер сварма вроде как на ipvs работает, поставил для нужной fw-маски persistence engine = sip, тут по идее тоже ок, сигнализация между хостами не плутает.

Вроде бегает, но чёт сцыкотно. Кто знает какие ещё подводные камни есть?

★★★★★

Последнее исправление: upcFrost (всего исправлений: 2)

Тут может быть затык с тем что у тебя несколько хостов слушают один порт и потоки трафика могут перекидываться с одного на другой. А в остальном лишние delay’и из-за docker-network.

Demacr ★★
()
Ответ на: комментарий от Demacr

Тут может быть затык с тем что у тебя несколько хостов слушают один порт и потоки трафика могут перекидываться с одного на другой

Все так, уже отказался от этой идеи, ipvs sip persistence поднять так и не вышло, там какой-то затык с хитрой докерной маршрутизацией, оно не хочет fwm есть

А без него сигнализация гуляет

upcFrost ★★★★★
() автор топика
Последнее исправление: upcFrost (всего исправлений: 1)
Ответ на: комментарий от Demacr
    deploy:
      mode: global
      resources:
        limits:
          cpus: '0.1'
          memory: 150M
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 3
        window: 5s
      placement:
        constraints:
          - node.labels.dns == true

только ноду не забудь пометить.

Demacr ★★
()
Последнее исправление: Demacr (всего исправлений: 1)
Ответ на: комментарий от Demacr

Нод с лейблом две, в этом вся соль. По идее ipvs должен с pe=sip трекать call-id вызова и отправлять всю сессию на одну ноду.

Но блин по факту на исходящих все ок, а на входящих каменный цветочек не выходит, и либо сигнализация гуляет по нодам, либо криво отрабатывает докеровый ингресс-нат и отсылает ответ не туда.

Чую я что там помимо iptables+ipvs ещё с три короба гвоздей

Вообще надо стенд собрать нормально, но времени нема.

А так пока пришлось host-based сделать и балансировку на провайдере. Не очень круто потому что надо помнить про это при апдейте, но хоть мозг не так рвёт как ингресс и его нюансы

upcFrost ★★★★★
() автор топика
Последнее исправление: upcFrost (всего исправлений: 3)

У меня тоже 2 ноды, mode: global + лейблы доводит только для нужных, но в твоём случае всё таки да, не решит проблему как с DNS. Ещё думал про Træfik, но у него sticky sessions только для http.

Demacr ★★
()
Ответ на: комментарий от Demacr

2 ноды в плане нужных, а так нод штук 15. Свою проксю можно, но ппц криво, лучше попробую раскурить что там ipvs не хочет

Да и у днс сессий нету, проще

upcFrost ★★★★★
() автор топика
Последнее исправление: upcFrost (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.