【发布时间】: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(比如游戏/缩放大厅?),但我不确定什么是最佳选择。
路由必须动态创建且可扩展,因此基于端口的路由和基于名称的路由不适合。
以下是我发现的一些可能相关的术语
- 有状态的应用程序
- 无头服务
- 自动标记
- kube-proxy
- 基于主机的路由
- 基于路径的路由
- 基于标头的路由
- 软件/应用负载平衡器
我正在使用 Linode,所以如果需要负载平衡器,最好使用 Linode NodeBalancers。
【问题讨论】:
-
不确定,但可以帮上忙:kafka.apache.org/0102/documentation/streams
标签: kubernetes stream devops kubernetes-pod linode