gpt4 book ai didi

Kubernetes Service集群IP,内部如何跨不同节点进行负载均衡

转载 作者:行者123 更新时间:2023-12-03 06:52:31 26 4
gpt4 key购买 nike

我创建了一个部署,导致 2 个节点上存在 4 个 Pod。

然后,我通过服务公开这些 Pod,从而产生以下集群 IP 和 Pod 端点:

Name:                     s-flask
......
IP: 10.110.201.8
Port: <unset> 9080/TCP
TargetPort: 5000/TCP
NodePort: <unset> 30817/TCP
Endpoints:
192.168.251.131:5000,192.168.251.132:5000,192.168.251.134:5000 + 1 more...

如果通过集群 IP 在内部访问服务,请求会在两个节点和所有 pod 之间平衡,而不仅仅是单个节点上的 pod(例如,通过 nodePort 进行访问)。

我知道 kubernetes 使用 IP 表来平衡单个节点上 pod 之间的请求,但我找不到任何文档来解释 kubernetes 如何跨多个节点平衡内部服务请求(我们不使用负载均衡器或入口)内部服务负载均衡)。

集群 IP 本身是虚拟的,我认为这可行的唯一方法是,如果集群 IP 循环映射到服务端点 IP 地址,客户端必须查找集群 IP/服务并选择端点 IP?

最佳答案

本文档的第二段“虚拟 IP 和服务代理”中解释了您需要的一切:https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service

简而言之:目前,根据代理模式,对于 ClusterIP,它只是循环/随机。它是由 kube-proxy 完成的,它在每个节点上运行,代理 UDP 和 TCP 并提供负载平衡。

最好将 Kubernetes 视为一个整体,而不是特定的节点。抽象在这里发挥作用。

希望它能回答您的问题。

关于Kubernetes Service集群IP,内部如何跨不同节点进行负载均衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49888133/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com