Does kubernetes have it's own Load Balancer?
Kubernetes 有自己的负载均衡器吗?
我在部署时阅读了有关 LoadBalancer 服务的信息,以便在集群外部公开它,但它使用了我的云提供商 Load Balancer。
Kubernetes 没有像 Nginx 那样拥有自己的负载均衡器吗?
我还阅读了外部和内部负载均衡器。他们在谈论云服务提供商负载均衡器吗?
- 这篇文章对 Kubernetes 中的 LoadBalancer 服务进行了详尽的解释:stackoverflow.com/questions/41509439/...
-
@Dhanraj 如果您询问在 k8s 中设置自己的 LB 的能力,请检查 MetalLB 以了解解决方案的复杂性 - metallb.universe.tf 通常,Kubernetes 围绕云提供的资源,但 k8s 的任何部分都可以针对特定任务进行定制。此外,kube-router、coredns 和 flannel/calico 文档将有助于您了解手动 k8s 网络配置。
请注意,如果您部署类型为 LoadBalancer 的 Kubernetes 服务,它会部署 L4 内部负载均衡器。它不提供您通过外部负载均衡器获得的所有功能。
如今,大多数外部负载均衡器在 http 标头和基于内容的路由等方面处理第 7 层。
您可以查看与外部负载平衡器同等的高级负载平衡器功能的入口控制器。但是你需要在它前面使用 HA
的外部负载均衡器
-
你的 L4 内部负载均衡器是云服务商提供的负载均衡器吗?
-
kubernetes.io/docs/concepts/services-networking 这个链接说 LoadBalancer:使用云提供商的负载均衡器在外部公开服务
-
比如说,您在集群中运行了 pod 的三个副本。位于 Pod 前面的服务将对三个 Pod 之间的流量进行负载均衡
Ingress 是自 kubernetes 1.1 以来可用的解决方案,它允许入站连接到集群。
它是外部 LoadBalancers(即您的云服务提供商负载均衡器)和 nodePort 的替代品
Ingress 允许您轻松公开需要从集群外部访问的服务
使用 Ingress,您可以在 kubernetes 集群中运行自己的入口控制器(基本上是负载均衡器)。
有可用的默认入口控制器,或者您可以编写自己的入口控制器。
根据服务类型
LoadBalancer: Exposes the service externally using a cloud providera€?s load balancer. NodePort and ClusterIP services, to which the external load balancer will route, are automatically created.
所以如果你想要类似于 Nginx 代理路由的东西,你应该检查 Ingress 资源。它可以帮助你。
主要原则:你有一个LoadBalancer or NodePort云提供商提供的Ingress Controller服务和多个通过Ingress资源的路由规则。
关于网络和 Nginx 入口控制器的介绍
k8s 中的网络
- 等等..你的主要原理让我很困惑..让我研究一下 Ingress 控制器
-
@Dhanraj 没问题。入口资源总是有助于节省云资源的费用并保护您的集群。您还应该检查流行的 ingress controllers Ingress 比较列表的功能
-
@Dhanraj 另外,如果您害怕云负载均衡器,则可以将 ingress controller 与 NodePort 服务类型一起使用。这种服务类型将使您免于 LB 分配,但您将遇到一个新问题 - 80/443 端口的外部端口映射。