kubernetes - 将多个用户连接到同一个 kubernetes pod

标签 kubernetes stream devops kubernetes-pod linode

我创建了一个名为 Remote Pipes 的服务器使客户端与流建立连接并在它们之间传输数据。

一侧是计算机Hub,另一侧是多个App客户端。

Hub 客户端连接到 Remote Pipes 并且双向流保持打开状态。

所有应用程序客户端都连接到远程管道和一个 two-way stream remains open .

每当 Hub 想要为 Apps 客户端发送数据时,他会将其发送到 Remote Pipes,然后 Remote Pipes 通过(已经打开的)打开的流向每个连接的 App 客户端发送数据。

每当其中一个应用程序客户端想要为集线器发送数据时,他会将数据发送到远程管道,远程管道组合来自应用程序的所有流并通过单个(已打开的)流将它们发送到集线器。

enter image description here

Remote Pipes 不存储数据,不使用本地存储,也不使用本地数据库,每个实例都用于一个家庭。

所以我想为每个家庭创建一个带有 Remote Pipes 的 Kubernetes pod,所有家庭成员都需要连接到同一个 pod。

不需要持久性 pod,如果一个 pod 被删除(如果没有连接),只要所有家庭成员 Apps 客户端和 Hub 客户端连接到同一个 pod,一个新的就可以。

问题:

正在寻找一种方法让多个用户连接到同一个 kubernetes pod(比如游戏/缩放大厅?),但我不确定什么是最佳选择。

路由必须动态创建且可扩展,因此基于端口的路由和基于名称的路由不太适合。

以下是我发现的一些可能相关的术语

  1. 有状态的应用
  2. headless 服务
  3. 自动标记
  4. kube-proxy
  5. 基于主机的路由
  6. 基于路径的路由
  7. 基于 header 的路由
  8. 软件/应用程序负载平衡器

我正在使用 Linode,因此如果需要负载平衡器,最好使用 Linode NodeBalancers。

最佳答案

Kafka 如果我们将它放在两者之间可能会有所帮助,但不确定您正在流式传输什么,如果它是有用的有效负载数据

enter image description here

正如你所说

No need for a persistent pod

您可以使用 Kind : Deployment 应用程序,而 Kafka 将是有状态集。

如果您使用的是 WebRTC,则不会有任何问题。 enter image description here

您应该结帐:https://cloud.google.com/architecture/orchestrating-gpu-accelerated-streaming-apps-using-webrtc

关于kubernetes - 将多个用户连接到同一个 kubernetes pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69644718/

相关文章:

javascript - 使用Kubernetes JavaScript客户端的createDeployment()

node.js - 处理 Node.js 中未使用的流

.net - 如何从azure devops管道中的另一个包源安装nuget包?

docker - jenkins在运行新容器时使用旧数据

kubernetes 丢失了 ~/.kube/config

kubernetes - 如果所有 livenessProbe 探测失败,kubernetes 是否可以在不中断的情况下重新启动 pod?

amazon-web-services - 关于AWS EC2实例中的Kubernetes集群

kubernetes - Istio 无法将请求路由到具有不同目标端口的工作负载

javascript - 合并的 gulp 任务从不触发 `end` 事件

java - Java I/O 流过滤器示例