kubernetes 容器的响应丢失

2024-03-06

我已经在openstack上安装了kubernetes。该设置在 coreos 上有一个主节点和一个节点。

我有一个在 UDP 端口 5060 上托管 SIP 应用程序的 pod,并且我已创建服务为NODEPORT在 5060 上。

规格:

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

IPs

  • 节点公网IP:192.168.144.29.
  • 节点私有IP:10.0.1.215。.
  • 容器的IP:10.244.2.4.
  • docker0接口:10.244.2.1.

现在,问题来了。 我向应用程序发送 SIP 请求并期望得到 200 OK 响应,但我没有得到该响应。

为了跟踪相同的情况,我在容器和节点上安装了 TCPDUMP。 在容器上,我可以看到捕获的请求和响应数据包,而在节点本身上我只能看到请求数据包。不明白为什么数据包会丢失。

下面是容器的tcpdump:

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 1514 bytes
06:12:20.391171 IP (tos 0x0, ttl 64, id 13372, offset 0, flags [DF], proto UDP (17), length 1010)
    10.244.2.1.50867 > 10.244.2.4.5060: [bad udp cksum 0x1ddc -> 0xe738!] SIP, length: 982
        PUBLISH sip:[email protected] /cdn-cgi/l/email-protection SIP/2.0
        Via: SIP/2.0/UDP 192.168.144.10:5060;branch=z9hG4bK-5672-1-0
        Max-Forwards: 20
        From: service <sip:[email protected] /cdn-cgi/l/email-protection>;tag=1
        To: sut <sip:[email protected] /cdn-cgi/l/email-protection>
        Call-ID: [email protected] /cdn-cgi/l/email-protection
        CSeq: 1 PUBLISH
        Expires: 3600
        Event: presence
        Content-Length:   607
        User-Agent: Sipp v1.1-TLS, version 20061124

        <?xml version="1.0"?>
        <deleted presence xml to reduce size>

06:12:20.401126 IP (tos 0x10, ttl 64, id 11888, offset 0, flags [DF], proto UDP (17), length 427)
    10.244.2.4.5060 > 10.244.2.1.5060: [bad udp cksum 0x1b95 -> 0xeddc!] SIP, length: 399
        SIP/2.0 200 OK
        Via: SIP/2.0/UDP 192.168.144.10:5060;received=10.244.2.1;branch=z9hG4bK-5672-1-0
        From: service <sip:[email protected] /cdn-cgi/l/email-protection>;tag=1
        To: sut <sip:[email protected] /cdn-cgi/l/email-protection>;tag=332ff20b76febdd3c55f313f3efc6bb8-ca08
        Call-ID: [email protected] /cdn-cgi/l/email-protection
        CSeq: 1 PUBLISH
        Expires: 3600
        SIP-ETag: a.1450478491.39.2.0
        Server: OpenSIPS (1.8.4-notls (x86_64/linux))
        Content-Length: 0


06:12:20.401364 IP (tos 0x0, ttl 64, id 13374, offset 0, flags [DF], proto UDP (17), length 427)
    10.244.2.1.58836 > 10.244.2.4.5060: [bad udp cksum 0x1b95 -> 0x1bcc!] SIP, length: 399
        SIP/2.0 200 OK
        Via: SIP/2.0/UDP 192.168.144.10:5060;received=10.244.2.1;branch=z9hG4bK-5672-1-0
        From: service <sip:[email protected] /cdn-cgi/l/email-protection>;tag=1
        To: sut <sip:[email protected] /cdn-cgi/l/email-protection>;tag=332ff20b76febdd3c55f313f3efc6bb8-ca08
        Call-ID: [email protected] /cdn-cgi/l/email-protection
        CSeq: 1 PUBLISH
        Expires: 3600
        SIP-ETag: a.1450478491.39.2.0
        Server: OpenSIPS (1.8.4-notls (x86_64/linux))
        Content-Length: 0

以及节点的 tcpdump:

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 1514 bytes
06:12:20.390772 IP (tos 0x0, ttl 127, id 20196, offset 0, flags [none], proto UDP (17), length 1010)
    192.168.144.10.5060 > 10.0.1.215.5060: [udp sum ok] SIP, length: 982
        PUBLISH sip:[email protected] /cdn-cgi/l/email-protection SIP/2.0
        Via: SIP/2.0/UDP 192.168.144.10:5060;branch=z9hG4bK-5672-1-0
        Max-Forwards: 20
        From: service <sip:[email protected] /cdn-cgi/l/email-protection>;tag=1
        To: sut <sip:[email protected] /cdn-cgi/l/email-protection>
        Call-ID: [email protected] /cdn-cgi/l/email-protection
        CSeq: 1 PUBLISH
        Expires: 3600
        Event: presence
        Content-Length:   607
        User-Agent: Sipp v1.1-TLS, version 20061124

        <?xml version="1.0"?>
        <presence xmlns="urn:ietf:params:xml:ns:pidf" />

来自 Iptables 的 Nodeport 规则

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

如果需要,我很乐意分享更多信息。我试图以我的能力进行挖掘,但现在我不知道该看什么,因此在这里请求一些帮助。

EDIT

我做了同样的测试TCP。在 TCP 上,它按预期工作。

Thanks


5060 超出默认服务节点端口范围:http://kubernetes.github.io/docs/user-guide/services/#type-nodeport http://kubernetes.github.io/docs/user-guide/services/#type-nodeport

服务的创建应该失败了。

您可以通过在 kube-apiserver 上指定 --service-node-port-range 来尝试不同的端口,或使用不同的范围创建集群。

https://github.com/kubernetes/kubernetes/blob/43792754d89feb80edd846ba3b40297f2a105e14/cmd/kube-apiserver/app/options/options.go#L232 https://github.com/kubernetes/kubernetes/blob/43792754d89feb80edd846ba3b40297f2a105e14/cmd/kube-apiserver/app/options/options.go#L232

您还应该检查是否可以从其他节点看到响应。在同一节点内通信时,“发夹模式”存在问题。

另外,报告问题时,请指定 Kubernetes 版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kubernetes 容器的响应丢失 的相关文章

随机推荐

  • GXT (Ext-GWT):ContentPanel 的布局问题

    我有一个适合整个窗口的内容面板 它有一个顶部组件 一个位于中心的小部件和一个底部组件 当我尝试在 ContentPanel 渲染一次后将小部件添加到 topComponent 时 我遇到了布局问题 public void onModuleL
  • 无法在 Windows 8 上的 WAMP 上运行 PHP CLI

    我已经尝试这个好几个小时了 我收到以下错误 php is not recognized as an internal or external command operable program or batch file 我已完成的步骤 1
  • 如何从 Python 脚本中触发气流 DAG 运行?

    使用 apache airflow 我创建了一些 DAGS 其中一些不按计划运行 我正在尝试找到一种方法 可以从 Python 脚本中触发特定 DAG 的运行 这可能吗 我能怎么做 编辑 python 脚本将从与我所有 DAGS 所在的项目
  • Android 5,camera2仅使用闪光灯

    我只需要使用带有APIcamera2 Android 5 API级别21 的闪光灯 就像手电筒应用程序一样 但我发现的所有示例都需要在视图中显示相机流 https github com pinguo yuyidong Camera2 blo
  • VBA本地时区调整

    假设我有一个本地太平洋时间 UTC 8 Excel 值 例如41656 67297 is 17 January 2014 4 09 PM 我无法控制这个值 我想相对于用户当地时间调整给定值 例如 都柏林的某人正在使用 Excel 工作簿 我
  • Apache Pig:无法运行我自己的pig.jar 和pig-withouthadoop.jar

    我有一个运行 Hadoop 0 20 2 和 Pig 0 10 的集群 我有兴趣向 Pig 的源代码添加一些日志 并在集群上运行我自己的 Pig 版本 我做了什么 使用 ant 命令构建项目 有pig jar和pig without had
  • 如何在自定义启动器上安装图标包?

    我正在尝试在自定义启动器上安装图标包 我已阅读此说明如何安装图标包 https stackoverflow com questions 31490630 how to load icon from icon pack但我无法理解如何使用该类
  • 使用片段的 Ecto“left IN right”查询

    我想使用 postgres IN 运算符 使用 Ecto 库 查询 jsonb 字段 此代码使用简单的 运算符 from a in query where fragment gt gt format a properties foo 但我无
  • Vagrant:192.168.33.10 拒绝连接

    你好 我通过vagrant在虚拟机中安装了centOS6 还安装了httpd和php 但是 当我尝试访问http 192 168 33 10 http 192 168 33 10这是我在Vagrantfile中设置的IP地址 我无法打开网页
  • “附加到流程”作为构建后事件

    我有一个在 w3wp exe 进程下托管的应用程序 在调试时 我经常发现自己遵循以下步骤 1 做一些改变 2 构建项目 3 使用 工具 菜单下的 附加到进程 对话框附加到 w3wp exe 4 在应用程序中执行一些操作以使我的代码执行 这样
  • 有没有办法在Asp.net core中执行批量请求?

    我们有一个使用 ASP Net Core 构建的 API 出于性能原因 我们希望将多个请求合并为一个 HTTP 请求 在以前版本的 ASP NET 中 您可以通过以下方式允许批量请求默认HttpBatchHandler https www
  • MEF 和使用 NUnit 进行单元测试

    几周前 我加入了 MEF 组件模型 潮流 现在将它用于我的许多插件和共享库 总的来说 除了我经常犯的错误 导致调试过程令人沮丧 之外 它还是很棒的 无论如何 我的应用程序运行得很好 但我的 MEF 相关代码更改导致我的自动构建失败 我的大多
  • getter 和 setter 的 junit 测试方法

    我的项目中有很多java bean 我需要为它们生成一个 JUnit 测试类 使用 Eclipse 3 2 和 junit 4 4 生成的测试方法如下所示 public void testGetName fail Not yet imple
  • 地形条件资源

    我有以下内容 我想知道我做错了什么 因为我确信我不应该仅仅因为条件而将代码加倍 所以我想做 variable https value true resource aws security group http instance sg cou
  • 如何找到 numpy 矩阵中的最小值?

    嘿 这是一个快速而简单的问题 我如何找到这个矩阵的最小值 不包括 0 如 8 arr numpy array 0 56 20 44 68 0 56 8 32 56 0 44 68 20 56 0 当你使用numpy 你可以使用 arr ar
  • 使用可变宽度字体创建文本列

    我正在尝试为将在 MSN Messenger 上运行的 C 应用程序创建文本列 我很难让所有东西都排列整齐 这是我想要的输出的示例 1 Pizza Hut 123 Fake St 2 Domino s Pizza 123 Fake St 3
  • 运行时级别的 lambda 和方法引用有什么区别?

    我遇到过使用方法引用而不是 lambda 发生的问题 该代码如下 Comparator
  • HTML5 视频标签中的音频

    我注意到使用音频文件
  • 覆盖函数内部的全局变量不适用于 Spyder 4

    我尝试从函数内覆盖全局定义的数据框 不知何故 全局值不会改变 在函数内打印数据帧可以使用预期值 import pandas as pd rawData pd read csv music csv appTitles pd DataFrame
  • kubernetes 容器的响应丢失

    我已经在openstack上安装了kubernetes 该设置在 coreos 上有一个主节点和一个节点 我有一个在 UDP 端口 5060 上托管 SIP 应用程序的 pod 并且我已创建服务为NODEPORT在 5060 上 规格 sp