如何解决Kubernetes中的Pod无法建立RTSP会话,UDP端口不可达
我正在尝试通过RTSP(使用ffmpeg)在吊舱和相机之间建立连接。
我的容器在本地运行并在服务器中时可以建立连接。
但是,在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端口也会失败,但是第二个UDP端口可以建立连接和流。
我认为这与端口通信有关,但是我迷失了应该尝试或进行的测试。
谢谢!
更新*
实际上我发现了一些奇怪的东西。
我再次尝试启动连接,并且分析了 tcpdump 和 netstat -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的人,这可能很有趣。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。