【问题标题】:do replicas decrease traffic on a single node kubernetes cluster?副本会减少单节点 Kubernetes 集群上的流量吗?
【发布时间】:2018-12-05 16:51:09
【问题描述】:

我是 Kubernetes 世界的新手。我正在尝试在我的个人项目中实现 Kubernetes 的优势。

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

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

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

我在 Kubernetes 功能方面的想法是否正确?

【问题讨论】:

    标签: docker kubernetes containers


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      但是要实现这一点,您必须创建和公开服务。您必须使用 Service 端点进行通信,而不是直接使用每个 pod IP。

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

      Kubernetes 管理 Pod。 Pod 是容器的包装器。 Kubernetes 可以在同一个节点(硬件)上或跨多个节点调度多个 Pod。取决于你如何配置它。您可以使用 Deployment 来管理管理 Pod 的 ReplicaSet。

      通常建议避免直接管理 pod。 Pod 可能会崩溃,突然停止。 Kubectl 会根据 Replica Set 配置自动为你创建一个新的。

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

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

      【讨论】:

        【解决方案3】:

        是的。它叫做Braess's paradox

        【讨论】:

          猜你喜欢
          • 2017-05-21
          • 2020-01-18
          • 1970-01-01
          • 2017-05-10
          • 1970-01-01
          • 1970-01-01
          • 2013-04-24
          • 2020-05-07
          • 1970-01-01
          相关资源
          最近更新 更多