1

好久没来了,希望你没事:)

所以现在,我很高兴与 kubernetes 一起工作!所以让我们开始吧!:)

[现有]

我有一个运行中的 kubernetes 集群,我每天都在使用它。它由几个应用程序组成,其中一个是我们特别感兴趣的,它是 Web 管理界面。

我目前在集群中拥有一个主节点和四个节点。

对于我的 web 应用程序,pod 包含 3 个容器:web / mongo /filebeat,出于技术原因,我们决定为每个 web pod 分配最多 5 个用户。

[我想要的是]

我想在每个节点(web0、web1、web2、web3)上部署一个 web pod,我已经可以做的,并且每个会话(1 个会话 = 1 个用户)分布如下:

用户重新分区

目前,所有 HTTP 请求都由 web0 处理。

[问题]

我是否被迫通过外部负载均衡器(haproxy)?

我可以使用内部负载均衡器来配置服务吗?

有没有人有上述实施的经验?

我提前感谢那些在这个过程中可以帮助我的人:)

4

1 回答 1

0

这通常取决于您部署 Kubernetes 基础架构的方式和位置,但您可以通过一些选项在本地执行此操作。

首先,您需要扩展您的 Web 部署。这很简单:

kubectl scale --current-replicas=2 --replicas=3 deployment/web

如果您部署到云提供商(例如使用 kops 或 GKE 的 AWS),您可以使用服务。只需将类型指定为 LoadBalancer。服务将为您的用户传播会话。

另一种选择是使用Ingress。为此,您需要使用 Ingress Controller,例如nginx-ingress-controller,它是功能最多且部署最广泛的。

这两个选项都会自动对传入的应用程序会话进行负载平衡,但它们可能不一定按照您在图像中描述的顺序进行,它会在可用的 Web 部署中随机进行

于 2018-04-17T14:58:40.717 回答