我对kubernetes还是陌生的。我正在尝试在我的个人项目中实现kubernetes的优势。
我在docker容器中有一个api服务,可从后端获取数据。
我计划在kubernetes集群的单个外部端口上创建此api服务容器的多个副本。如果副本位于单个节点上,它们会共享流量吗?
我的最终目标是创建此api服务的多个实例,以使我的应用程序运行更快(用户可以访问多个api服务之一,这应减少单个实例上的流量)。
我是否在考虑使用kubernetes功能?
答案 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。