Kubernetes 如何平衡集群节点之间的请求?

安酷

这几天我一直在研究 Kubernetes 的主要特性,我明白了很多东西,我真的做到了。但是我没有找到这个问题的答案:Kubernetes 如何平衡集群节点之间的请求?

好吧,我的意思是,假设一个本地私有 Kubernetes 集群: LoadBalancer 类型实际上使服务使用 IP 将其端口发布到网络;Ingress 服务是为一些第三方 IngressController 设置规则的服务,它处理请求并将它们转发到正确的服务。

我不明白的是:

  1. 这些组件中的任何一个或所有组件,或者其他组件,是否实际监视节点(或 Pod,我不知道)可用资源并选择将请求转发到哪个节点(或 Pod)?
  2. 如果任何真正的负载均衡器原生存在于 Kubernetes 中,它采用什么标准?也许是前面提到的资源,或者网络延迟,或者只是采用循环。
  3. 如果有默认的平衡策略,是否可以自定义并实现自己的规则?

请告诉我,如果我误解了什么,我会努力更好地专注于那个。谢谢你们。

托马斯

如果您没有在外部进行负载平衡的东西(feistio),那么您提到的所有选项都归结为将 tcp 连接引入集群。

在集群内部,ClusterIP 是负载均衡的真正概念:分配给具有 ClusterIP 的服务的所有 Pod 将(大致)以循环方式使用。这由 kubeproxy 在每个节点上配置的 iptables DNAT 规则处理。

外部 LoadBalancer 或 Ingress 通常不执行负载平衡,即使名称可能暗示它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章