Kubernetes中的Pod无法建立RTSP会话,UDP端口无法访问



我正试图通过RTSP(使用ffmpeg(在我的pod和相机之间建立连接。

我的容器,当在本地和服务器上运行时,可以建立连接。

然而,在Kubernetes中,看起来可以访问并识别相机服务器,但它无法初始化流。当我尝试连接时,我在我的容器上做了一个tcpdump,我收到了以下消息:

10:55:37.065954 IP **CAMERA_SERVER_IP** > **POD_NAME**: ICMP **CAMERA_SERVER_IP** udp port 36337 unreachable, length 44
10:55:37.066003 IP **CAMERA_SERVER_IP** > **POD_NAME**: ICMP **CAMERA_SERVER_IP** udp port 36336 unreachable, length 48

**CAMERA_SERVER_IP**->是摄像机服务器的IP地址

**POD_NAME**->是我的pod在kubernetes的名字。

当我在本地尝试时,第一个UDP端口也会失败,但第二个可以建立连接和流。

我认为这与端口通信有关,但我有点迷失在应该尝试或测试的内容中。

谢谢!

更新*

事实上,我发现了一些奇怪的东西。

我再次尝试启动连接,并分析了tcpdumpnetstat-tulpn的日志。

在本地连接时,netstat识别创建了两个UDP连接。tcpdump显示ffmpeg正试图使用来自netstat的相同UDP端口从服务器连接

然而,在Kubernetes中的一个pod中,netstat上打开的端口与ffmpeg尝试连接的端口不同(使用tcpdump验证(。

我认为这就是错误所在,因为ffmpeg在尝试访问未打开的端口时会立即失败。

正如我在这里解释的那样,我实际上使用了另一个ffmpeg服务器包装器:https://github.com/kubernetes/kubernetes/issues/94561

如果有人有类似的问题,特别是Intelbras DVR或使用DAHUA API的DVR,这可能很有趣。

最新更新