Networking 同一服务器上的负载平衡

Networking 同一服务器上的负载平衡,networking,server,kubernetes,Networking,Server,Kubernetes,我研究了Kubernetes,发现它们在同一个节点上执行负载平衡器。如果我没有错的话,一个节点意味着一台服务器机器,那么在同一台服务器机器上进行负载平衡器又有什么好处呢。因为它将使用相同的CPU和RAM来处理请求。首先,我认为负载平衡应该在单独的机器上进行,以共享CPU和RAM的资源。所以我想知道在同一台服务器上进行负载平衡的意义。如果您可以在一个节点上进行负载平衡,这并不意味着您应该这样做,特别是在生产环境中 生产集群至少有3或5个节点 kubernetes将副本分布在集群节点上,以平衡节点

我研究了Kubernetes,发现它们在同一个节点上执行负载平衡器。如果我没有错的话,一个节点意味着一台服务器机器,那么在同一台服务器机器上进行负载平衡器又有什么好处呢。因为它将使用相同的CPU和RAM来处理请求。首先,我认为负载平衡应该在单独的机器上进行,以共享CPU和RAM的资源。所以我想知道在同一台服务器上进行负载平衡的意义。

如果您可以在一个节点上进行负载平衡,这并不意味着您应该这样做,特别是在生产环境中

  • 生产集群至少有3或5个节点
  • kubernetes将副本分布在集群节点上,以平衡节点工作负载,POD最终位于不同的节点上
  • 您还可以配置您的POD在哪些节点上着陆
  • 使用高级调度、pod关联和反关联
  • 您还可以插入自己的schedular,这将不允许在同一节点上放置同一应用程序的副本吊舱
  • 然后定义一个服务来跨不同节点上的POD进行负载平衡
  • kube代理将完成其余工作
以下是一个有用的阅读:

因此,您通常需要选择所需的可用性级别 舒适的。例如,如果在三个节点中运行三个节点 单独的可用性区域,您可以选择对 单节点故障。丢失两个节点可能会使应用程序 下降,但失去两个独立可用的数据中心的可能性 区域较低

底线是没有通用的方法;只有你能 了解什么对您的业务有效,以及您认为的风险水平 可以接受


我猜你指的是服务如何实现自动负载平衡。假设您有一个部署,其中一个节点上有两个副本,还有一个服务。到Pod的流量通过服务进行传输,因此如果没有负载平衡,那么所有内容都将只流向一个Pod,而另一个Pod将一无所获。然后,您可以通过均匀分布来处理更多负载,并且仍然相信,如果一个吊舱死亡,流量将得到满足


您还可以对从外部进入集群的流量进行负载平衡,以便集群的入口点不总是同一个节点。但这是不同级别的负载平衡。即使只有一个节点,您仍然需要集群内服务的负载平衡。请参阅外部入口点的负载平衡

感谢澄清我,所以在一个节点上进行负载平衡的重点是保护一个服务宕机,而一个服务宕机将取代另一个服务。因此,它无法处理更多的服务请求。因为它在同一台机器上使用相同的cpu和ram。它只帮助保护服务器不停机或中断。我的理解正确吗?您可以垂直缩放,将所有CPU和ram分配给一个Pod。尽管它可能由于资源限制以外的原因而失败,所以您可能希望避免单点失败。它可能有内存泄漏或细微的错误。Kubernetes是关于通过复制副本进行水平扩展的。它是一个容器编排器。在它里面,每个Pod都有一定的隔离度,以及它自己的CPU和ram的最小和最大分配。但在实践中,编排是关于拥有大量容器的。如果您真的只想在一台服务器上运行一个容器,那么K8ST不会让您受益,谢谢您的好意。我假设一台机器可以处理1000个请求。如果我运行两个相同的容器。每个容器可以处理500个请求。但如果我运行一个容器,它可以处理1000个请求。我理解正确吗?。分离的好处是如果一个容器和另一个容器仍然可以处理请求。所以我想知道,如果我们想通过水平扩展实现负载平衡,通常我们应该在不同的节点上运行POD或副本。是的,通常您希望有多个节点,并在节点周围分布相同类型的POD,以避免单点故障。这就是伊扎兹·艾哈迈德·汗在他的回答中所解释的