当前位置: 首页 > 知识库问答 >
问题:

Kubernetes - 无论如何,在没有外部负载均衡器的情况下,对在多个节点上运行的服务的请求进行负载平衡?

章承基
2023-03-14

因此,在单个节点上运行和扩展运行多个 Pod 的部署效果很好,并且当使用类型“nodePort”公开服务时,可以很好地平衡对该单个节点上多个 Pod 之间的虚拟 IP 的请求。

此后,我向我的集群添加了一个额外的节点,当使用nodePort公开服务,然后在2个节点上运行pods时,我当然需要具体指定每个主机,以访问在不同节点上的不同pods中运行的endpoint。

我想将请求发送到单个VIP,并在不同节点之间进行负载平衡。我在我的家庭网络上运行这个小集群,所以我的问题是,是否无论如何都可以将请求发送到单个VIP,并在不使用外部负载均衡器的情况下跨节点/Pod进行负载平衡?例如,kubernetes中是否有一些html" target="_blank">配置来处理这个问题?

我尝试使用服务类型负载均衡器(而不是节点端口),但这并不能跨节点进行负载均衡。

共有2个答案

郎嘉树
2023-03-14

在我看来,如果两个节点中的所有pod都连接到同一个blosterIP,那么所有pod都将在两个节点之间进行负载平衡。ClusterIp服务作为内部负载均衡器为您工作。

符懿轩
2023-03-14

看看Kubernetes的Keepalived吧。

其想法是在kubernetes集群之外为每个服务公开一个虚拟IP(VIP)地址。KeepAlive然后使用VRRP在本地网络中同步此“映射”。在集群中运行2个或多个pod实例时,可以使用单个VIP地址提供HA。

 类似资料:
  • 我正在DigitalOcean上使用CoreOs和库伯内特斯构建一个容器集群,我已经看到,为了向世界公开Pod,您必须使用Type: LoadBalancer创建一个服务。我认为这是最佳解决方案,因此您不需要在nginx或haagent等kubernetes之外添加外部负载均衡器。我想知道是否可以使用DO的浮动IP创建它。

  • 试图自学如何使用库伯内特斯,但有一些问题。 我的下一步是尝试使用LoadBalancer类型的服务来访问nginx。 我建立了一个新的集群并部署了nginx映像。 然后,我为LoadBalancer设置服务 设置完成后,我尝试使用LoadBalancer入口(我在描述LoadBalancer服务时发现)访问nginx。我收到一个此页面无法工作的错误。 不太确定我哪里出错了。 kubectl获得sv

  • 我想知道是否有可能将Google云负载平衡器链接到一个外部服务器——一个托管在Google云之外的服务器? 因此,负载均衡器可能会链接到Google Cloud实例,但也可能链接到外部服务器。

  • 我按照此处找到的指南设置了一个 4 节点 Kubernetes 集群:https://www.tecmint.com/install-a-kubernetes-cluster-on-centos-8/ 它有一个主节点和3个工作节点。 我正在运行一个名为“hello world”的部署,它基于bashofmann/rancher演示映像,有20个副本。我还创建了一个名为hello world的nod

  • 我安装了一个kubernetes集群。我想为我的一个微服务使用外部数据库(在我的集群之外),但这个外部数据库被设置为集群,没有自己的负载均衡器。 有没有办法创建一个内部负载平衡器服务,让kubernetes始终将微服务定向到正在运行的实例? 我看到您可以设置loadbalancer类型的服务,我如何使用它?我尝试创建它,但我看到loadbalancer服务是用NodePort创建的。它可以在没有节

  • 在Kubernetes中创建负载平衡器类型的服务时,它是创建一个全新的外部负载平衡器,还是只为负载平衡器类型的第一个服务创建一个负载平衡器,并将该负载平衡器重新用于负载平衡器类型的所有后续服务? 这个问题特别重要,因为为每个服务构建一个单独的负载平衡器对我来说成本太高。 如果它特定于云提供商,我使用Azure,但我很想知道其他云提供商是否不同。