gpt4 book ai didi

kubernetes - Kubernetes 中的自定义负载均衡

转载 作者:行者123 更新时间:2023-12-02 11:48:50 27 4
gpt4 key购买 nike

我正在尝试在 kubernetes 中部署具有负载平衡的应用程序

下面是我的预期部署图

enter image description here

理想情况下,应用程序由一组使用 k8s 部署的 pod 部署,类型为“后端”

通常,用户实例存储在存档中。并根据请求动态恢复到其中一个 pod,在那里停留 TTL 时间(比如 30 分钟),然后删除并备份到存档中。

理想情况下,负载平衡由一组使用 k8s 部署的 pod 部署,类型为“前端”。

理想情况下,前端配置为带有“sticky = host”的第 7 层 session 粘性。主机等于后端 pod 的 UID

用户通过 SOAP 消息请求服务,该消息在其正文中包含参数“host”和“user”。

当 SOAP 消息到达前端时,会从消息正文中提取“主机”值。

如果“host”值有效,则 SOAP 消息被转发到相应的后端 pod(其 UID 等于主机值)。否则,分配一个随机的后端 pod。

(此处的处理是特定于应用程序的)
在后端 pod 中,应用程序通过“user”的值检查用户实例的可用性。

如果已经存在,就使用它;否则,尝试从存档中恢复;如果恢复失败(新用户),则创建一个新用户实例。

我四处搜寻,并没有找到任何类似的例子。
尤其是layer7 session 粘性配置,以及自定义获取传入消息体粘性值的实现。

最佳答案

这听起来像是一个通过前端负载均衡器进行身份验证的用例。你看过 Istio 和大使吗?似乎 Istio 和 Envoy 可以提供服务网格来将请求路由到 pod。然后,您必须在 Ambassador 中编写一个自定义插件模块,以创建您正在寻找的特定路由和身份验证机制。

大使自定义认证服务示例:https://www.getambassador.io/user-guide/auth-tutorial

https://www.getambassador.io/user-guide/with-istio

这种自定义的粘性 session 路由也可以使用其他 API 网关完成,但仍使用 Istio 路由到不同的 pod。但是,最好将 pod 定义为单独的服务,以便 API 网关(Ambassador、Kong、Nginx)根据消息正文的参数更轻松地进行分段。

关于kubernetes - Kubernetes 中的自定义负载均衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50733926/

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