首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是库伯内特斯LoadBalancer On-Prem?

什么是库伯内特斯LoadBalancer On-Prem?
EN

Stack Overflow用户
提问于 2022-04-05 07:43:31
回答 1查看 479关注 0票数 1

我理解,在云场景中,LoadBalancer资源引用并提供了外部第4层负载均衡器。集群有一些专有的集成来配置这种负载平衡。好的。

ingress,我们没有这样的集成,所以我们在集群之外创建了自己的负载均衡器,它将流量分配到所有节点--在我们的例子中,有效地分配到入口。

我认为集群没有必要知道这个外部负载均衡器的任何信息。

什么是负载均衡器*在预置场景中?为什么我有他们?为什么我需要一个?是干什么的呢?当我创建一个时会发生什么?LoadBalancer资源在入口流量中扮演什么角色。LoadBalancer在集群之外有什么影响?LoadBalancer只是获取新IP地址的一种方式吗?IP是如何/为什么/从何而来的?

  • 所有问题都是指集群内部的“LoadBalancer”类型的服务,而不是集群不了解的集群外的负载均衡器。
EN

回答 1

Stack Overflow用户

发布于 2022-04-05 14:15:27

正如注释中指出的那样,LoadBalancer类型的kubernetes服务在默认情况下不能与on设置一起使用。您可以使用金属b在on环境中设置该类型的服务。

Kubernetes没有为裸金属集群提供网络负载均衡器(LoadBalancer类型的服务)的实现。..。如果您没有在受支持的IaaS平台(GCP、AWS、Azure…)上运行,LoadBalancers在创建时将无限期地处于“待决”状态。..。MetalLB旨在通过提供一个与标准网络设备集成的网络负载均衡器实现来纠正这种不平衡,从而使裸金属集群上的外部服务也尽可能地“正常工作”。

例如,您可以使用BGP模式向您的路由器宣传服务的IP,并在文档中阅读更多信息。

该项目仍处于测试阶段,但被推广为生产准备,并被几家较大的公司使用。

编辑

关于你在评论中的问题:

我能否只广播我的节点的MAC地址,并通过kubectl编辑手动将我正在广播的IP添加到LoadBalancer服务中?

是的,那样也行。这基本上就是metallb所做的,宣布IP和更新服务。

那么为什么需要一个软件呢?成像有500个主机来来去去,思想上发送的服务类型为LoadBalancer,来来往往。这里需要一个自动化系统。

为什么库伯内特斯需要知道这个IP?

如果您不使用外部ip,则该服务仍然可以通过它的NodePort使用,例如,请参阅istio文档 (我添加了更多的详细信息):

代码语言:javascript
复制
$ kubectl get svc istio-ingressgateway -n istio-system
NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)
istio-ingressgateway   LoadBalancer   192.12.129.119   <Pending>   [...],80:32123/TCP,443:30994/TCP,[...]

在这里,外部IP没有设置,而是停留在<Pending>中。您仍然可以通过将流量指向<Node-IP>:32123 (普通http )和指向<Node-IP>:30994 ( https )来使用该服务。如上面所示,这些端口被映射到80和443。

如果设置了外部ip,则可以在外部负载均衡器上直接将流量定向到端口80和443。Kube将创建一个带有外部ip目标的iptables链,它基本上通过负载均衡配置的服务ip从外部IP引导到一个pod。

要了解设置LoadBalancer类型服务的情况,请确保它具有外部ip,连接到主机并运行iptables-save命令(例如,iptables-save | less)。搜索外部ip,并遵循链,直到你在吊舱结束。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71747959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档