Проблемы с запуском SIP-приложения (UDP) в Kubernetes

Я пытаюсь работать с SIP-приложением (сервер присутствия opensips) в Kubernetes, но оно не работает должным образом.

Приложение работает на порту UDP 5060, и клиенты также используют этот порт для подключения.

Я создал службу NodePort (поскольку LoadBalancer поддерживает только TCP), которая предоставляет NodePort 5060, а порт контейнера также 5060.

Ниже приведена спецификация:

"spec": {
    "ports": [
      {
        "port": 5061,
        "protocol": "UDP",
        "targetPort": 5060,
    "nodeport": 5060,
    "name": "sipu"
      }
    ],
    "selector": {
      "app": "opensips"
    },
    "type": "NodePort"
  }

И правила Iptable:

Chain KUBE-NODEPORT-CONTAINER (1 references)
 pkts bytes target     prot opt in     out     source               destination
   12  8622 REDIRECT   udp  --  *      *       0.0.0.0/0            0.0.0.0/0            /* default/opensips:sipu */ udp dpt:5060 redir ports 40482
    3    95 REDIRECT   udp  --  *      *       0.0.0.0/0            0.0.0.0/0            /* default/my-udp-service: */ udp dpt:6000 redir ports 47497


Chain KUBE-NODEPORT-HOST (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DNAT       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            /* default/opensips:sipu */ udp dpt:5060 to:10.0.1.215:40482
    0     0 DNAT       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            /* default/my-udp-service: */ udp dpt:6000 to:10.0.1.215:47497

Приложение получает запрос, но проблема возникает, когда оно пытается отправить ответ на порт 5060, ответ отправляется обратно в модуль, я думаю, из-за правил iptable.

Я пытался использовать другой клиентский порт, но в этом случае iptable игнорирует порт, потому что не знает об этом порте.

Пожалуйста, помогите мне, если в этом случае необходимо сделать что-то дополнительное.

Спасибо


person user3275095    schedule 24.12.2015    source источник


Ответы (1)


возможно, вам нужно запустить службу kube-proxy с этим флагом конфигурации на всех узлах:

--udp-timeout=250ms (change the value according to your needs)

дополнительная информация: http://kubernetes.io/v1.1/docs/admin/kube-proxy.html

person adriagalin    schedule 20.02.2016