【问题标题】:Connect multiple users to the same kubernetes pod将多个用户连接到同一个 kubernetes pod
【发布时间】:2021-12-07 04:47:50
【问题描述】:

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

一边是电脑Hub,一边是多个App客户端。

Hub 客户端连接到远程管道,双向流保持打开状态。

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

每当集线器想要为应用程序客户端发送数据时,他都会将数据发送到远程管道,远程管道通过(已经打开的)打开的流向每个连接的应用程序客户端发送数据。

每当有一个应用程序客户端想要为 Hub 发送数据时,他都会将其发送到 Remote Pipes,Remote Pipes 会组合来自应用程序的所有流,并通过单个(已经打开的)流将它们发送到 Hub。

远程管道不存储数据,也不使用本地存储,也不使用本地数据库,每个实例都适用于一个家庭。

所以我想为每个家庭创建一个带有远程管道的 Kubernetes pod,并且所有家庭成员都需要连接到同一个 pod。

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

问题:

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

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

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

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

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

【问题讨论】:

标签: kubernetes stream devops kubernetes-pod linode


【解决方案1】:

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

正如你所说的

无需持久化 pod

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

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

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

【讨论】:

  • 我不确定我是否理解。我已经对 Remote Pipes 软件进行了编程,它已经结合了我所描述的所有流。您的意思是用 Kafka 替换远程管道吗?。
  • 我的问题是关于如何将多个选定的用户连接到同一个 kubernetes pod。
  • 您可以查看 cookie 或基于状态的路由到 pod,这称为粘性会话。
  • 您无法控制粘性会话并让多个用户有意连接到同一个 Pod,只有已经到达 Pod 的用户才会留在该 Pod 上。
猜你喜欢
  • 2017-12-28
  • 2019-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多