很长一段时间我没有来这里,我希望你没事。)
所以现在,我有幸与kubernetes合作!让我们开始吧! :)
[现有]
我有一个我每天工作的操作kubernetes集群。它由几个应用程序组成,其中一个是我们特别感兴趣的,它是Web管理界面。
我目前在我的群集中拥有一个主节点和四个节点。
对于我的Web应用程序,pod包含3个容器:web / mongo / filebeat,由于技术原因,我们决定为每个Web pod分配最多5个用户。
[我想要什么]
我想在每个节点(web0,web1,web2,web3)上部署一个Web pod,我已经可以做了,每个会话(1个会话= 1个用户)按如下方式分发:
目前,所有HTTP请求都由web0处理。
[问题]
我是否被迫通过外部负载均衡器(haproxy)?
我可以使用内部负载均衡器,配置服务吗?
有没有人对上述实施有经验?
我提前感谢那些可以帮助我的人:)
答案 0 :(得分:0)
这通常取决于您部署Kubernetes基础架构的方式和位置,但您可以通过一些选项本地执行此操作。
首先,您需要扩展您的Web部署。这很简单:
kubectl scale --current-replicas=2 --replicas=3 deployment/web
如果您已部署到云提供商(例如使用kops或GKE的AWS),则可以使用服务。只需指定type as LoadBalancer即可。服务将为您的用户传播会话。
另一种选择是使用Ingress。为此,您需要使用入口控制器,例如nginx-ingress-controller,它是功能最强大且部署最广泛的。
这两个选项都会自动对传入的应用程序会话进行负载均衡,但它们可能不一定按照您在图像中描述的顺序进行,并且在可用的Web部署中是随机的