Kubernetes:非 REST 容器上的负载平衡

Kubernetes:非 REST 容器上的负载平衡

我是 Kubernetes 新手。我学习过kubectl scale生成副本,但效果不佳,因为我的容器(shiny app)保留了特定于会话的上下文。每个会话都需要路由到同一个容器。

因此,我想获得一个简单的方法来:

  • 保留路由缓存,始终将相同的 IP 路由到相同的 pod(显然会有一个超时),以避免任何上下文问题
  • 如果可能的话,我想要一个自适应规则,类似于“number_of_replicas = 2 + ceiling(nb_users / 10)”(预先生成一个两个的池,然后适应)

有没有简单的方法可以做到这一点?

答案1

会话亲和性或通常称为粘性会话将帮助您将会话的后续请求路由到同一个 pod。使用任何 kubernetes 入口控制器都可以实现此功能,但是如果您尝试使用简单的解决方案,则需要注意某些限制,例如由 Paul Dally 撰写的文章,他解释了如何使用会话亲和性来路由流量,它的局限性以及如何克服这个问题的概述。

注:该博客由丹尼尔·波伦契奇,(为会话亲和性提供的超链接)还详细说明了如何配置会话亲和性及其局限性。

相关内容