1

Kubernetes で SIP アプリケーション (opensips プレゼンス サーバー) を操作しようとしていますが、期待どおりに動作しません。

アプリケーションは UDP ポート 5060 で実行され、クライアントも同じポートを使用して接続します。

NodePort 5060 を公開し、コンテナー ポートも 5060 である NodePort サービスを作成しました (LoadBalancer は TCP のみをサポートするため)。

以下は仕様です。

"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 はそのポートを認識していないため、そのポートを無視します。

この場合、何か特別なことをする必要がある場合は、私を案内してください。

ありがとう

4

1 に答える 1

0

おそらく、すべてのノードでこの構成フラグを使用して kube-proxy サービスを開始する必要があります。

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

詳細: http://kubernetes.io/v1.1/docs/admin/kube-proxy.html

于 2016-02-20T18:41:04.450 に答える