副本会减少单个节点kubernetes群集上的流量吗?

时间:2018-12-05 16:51:10

标签: docker kubernetes containers

我对kubernetes还是陌生的。我正在尝试在我的个人项目中实现kubernetes的优势。

我在docker容器中有一个api服务,可从后端获取数据。

我计划在kubernetes集群的单个外部端口上创建此api服务容器的多个副本。如果副本位于单个节点上,它们会共享流量吗?

我的最终目标是创建此api服务的多个实例,以使我的应用程序运行更快(用户可以访问多个api服务之一,这应减少单个实例上的流量)。

我是否在考虑使用kubernetes功能?

3 个答案:

答案 0 :(得分:1)

是的,API服务的多个副本将分担负载。在Kubernetes中,有一个Services的概念会将流量发送到后端,在这种情况下,它是您的api应用程序在pod中运行。默认情况下,后端的选择是随机的。此外,无论Pod是在单个节点上运行还是在不同节点上运行,流量都将基于labels在所有Pod之间随机分配。

这还将使您的应用程序具有很高的可用性,因为您将使用部署来指定副本数,并且每当可用副本数少于所需副本数时,Kubernetes就会提供新的Pod以满足所需状态。

答案 1 :(得分:0)

如果您添加Web服务器的多个实例/副本,它将分担负载并避免单点故障。

但是要实现此目的,您将必须创建并公开服务。您将必须使用Service端点进行通信,而不是直接使用每个Pod IP。

服务公开端点。它具有负载平衡。它通常使用轮询将负载/请求分配到服务负载平衡器后面的服务器。

Kubernetes管理Pod。荚是容器周围的包装纸。 Kubernetes可以在同一节点(硬件)上或在多个节点上调度多个Pod。取决于您如何配置它。您可以使用“部署”来管理用于管理Pod的副本集。

通常,建议避免直接管理吊舱。豆荚可能会崩溃,突然停止。 Kubectl会根据副本集配置自动为您创建一个新文件。

使用部署,您还可以进行滚动更新。

您可以参考Kubernetes Docs来详细了解此内容。

答案 2 :(得分:0)

是的。称为Braess's paradox