如何理解 LoadBalancer Ingress

内容分享2个月前发布
0 0 0

LoadBalancer Ingress是一个Kubernetes网络概念。它的作用是:

为 Kubernetes 集群中的 Service 提供外网访问入口。

具体来说:

  • Service 使用 ClusterIP 类型,只能在集群内部访问。
  • 当需要从外部访问 Service 时,可以使用 LoadBalancer Ingress。
  • LoadBalancer Ingress 会分配一个外网 IP 地址或域名。
  • 外部请求会通过这个 external IP 路由到 Service 后端的Pods。

举个例子:

apiVersion: v1
kind: Service 
metadata:
  name: my-service
spec:
  type: LoadBalancer 
  ports:
  - port: 80
    targetPort: 8080

这里定义了一个 LoadBalancer 类型的 Service,它会:

  1. 分配一个外网IP地址,供外部访问
  2. 路由匹配端口(port: 80)的请求,转发到 Service 后端Pods的目标端口(targetPort: 8080)

这样一来,外部就可以通过 LoadBalancer Ingress 分配的IP:PORT 地址,访问这个 Service 的后端Pods。

也可以理解为:LoadBalancer Ingress 为 Service 提供了外网访问入口。

除了外网IP地址外,有些云服务商也支持分配外部域名作为 Ingress。

总的来说,LoadBalancer Ingress可用于:

  • 将 Service 暴露到集群外部
  • 作为 Service 的外网访问入口
  • 通过 Ingress 访问 Service 后端的Pods

云服务商分配LoadBalancer Ingress 的原理主要是使用虚拟负载均衡器(virtual load balancer)。

具体来说:

  • 云服务商拥有大量计算和网络资源,包括虚拟负载均衡器。
  • 当创建 LoadBalancer 类型的 Service 时,K8s 会请求云服务商分配负载均衡器。
  • 云服务商会从虚拟负载均衡器池中分配一个负载均衡器实例。
  • 并将该负载均衡器的外网IP地址或域名设置为该Service的LoadBalancer Ingress。
  • 负载均衡器被配置为,根据请求的端口,将请求转发到Service后端的Pod上。
  • LoadBalancer Ingress 就是负载均衡器的外网入口,可以从外部访问该Service。

举个例子:

  • 创建 LoadBalancer 类型的Service会请求负载均衡器。
  • 云服务商从池中分配负载均衡器 lb-123,将其外网IP 111.111.111.111 分配给该Service。
  • Service的LoadBalancer Ingress 设置为 111.111.111.111。
  • 浏览器访问 111.111.111.111:80,请求被负载均衡器转发到 Service后端Pods。

这样,负载均衡器就起到了为Service提供外网访问入口的作用。

要实现这一功能,云服务商需要:

  • 提供大量的虚拟负载均衡器
  • 支持自动配备和销毁负载均衡器
  • 支持将负载均衡器的IP/域名绑定到 Kubernetes Service 上

以此来为K8s Service提供外部访问能力。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...