gpt4 book ai didi

go - 将所有请求转发到Kubernetes中专用Pod的动态URL

转载 作者:行者123 更新时间:2023-12-01 21:09:51 24 4
gpt4 key购买 nike

我正在尝试使用kubernetes集群对来自多个IP摄像机的视频流进行按需实时转码,并通过websocket发送到网站。

我修改了一个在线找到的项目,该项目是用go编写的,它使用rtsp提要URL的有效负载接收Web请求,然后使用该URL启动FFMPEG进程来访问流并将其转码为MPEG并发送mpeg数据发送到go应用程序上的另一个端点,这将启动websocket连接。当可以访问流时,对原始请求的响应包括一个websocket URL。可以将该网址放入mpeg js播放器中,并在浏览器中通过Websocket进行查看。主要优点是多个客户端可以查看流,而只有一个流来自摄像机,这减少了移动数据。我还要补充一点,FFMPEG在60秒后会自动停止,并且没有将请求设置为终结点。

我找不到解决方案的问题是,如何在kubernetes集群中扩展上述应用程序,因此当我请求进入时,它会执行以下操作。
->检查是否有人正在观看流
---->如果有人正在查看,则意味着已经建立了pod和websocket连接。因此,指向Pod的网址只需要发送回客户端即可。
---->如果没有人正在查看,则需要创建一个流/websocket pod,并且一旦创建,就会将一个url发送回客户端以访问流。

我已经看过入口 Controller ,可能动态更新入口资源是一种解决方案,甚至可以使用服务网格,但是这些对我来说都是新的。

如果有人能给我一些指导,请多多关照。

非常感谢
路加

最佳答案

让应用程序动态配置K8听起来像是一个复杂的解决方案,由于入口对象非常大,可能会影响性能。您可能需要研究如何清理它们。另外,要执行此操作,需要在您的应用程序中使用K8s客户端。

我建议在没有K8s资源帮助的情况下解决此问题,只需让您的应用程序在需要时将HTTP重定向(301)返回到该websocket URL。

关于go - 将所有请求转发到Kubernetes中专用Pod的动态URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62444256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com