1 介绍

  负载均衡器Load Balancer服务是NodePort服务的扩展,负载均衡器拥有独立的可公开访问的IP地址,并将所有连接都重定向到服务,外部客户端可以通过负载均衡器的IP地址访问到集群内部的服务。

2 使用

2.1 创建

spec.type设置为LoadBalancer,则该服务即为负载均衡器服务。
LoadBalancer

by k8s in action

执行创建命令
$ kubectl create -f xxx.yml
创建服务后,云基础架构需要一段时间才能创建负载均衡器并将其IP地址写入服务对象。

2.2. 查看

$ kubectl get svc service_name
通过EXTERNAL-IP查看到负载均衡器的IP地址。

补充:

为什么不同的浏览器请求不会碰到不同的pod,而curl会碰到不同的pod?(会话亲和性)
  浏览器使用keep-alive连接,并通过单个连接发送所有请求,curl每次都会打开一个新的连接,服务在连接级别工作,所以当首次打开与服务的连接时,会选择一个随机集群,然后将属于该连接的所有网络数据包全部发送到单个集群,会话亲和性设置为None,用户也会始终使用相同的pod,直到浏览器的连接关闭。

HTTP请求如何传递到pod?
  外部客户端连接到负载均衡器的端口上,然后路由到其中一个节点上的隐式分配节点端口,最后该连接被转发到一个pod上。

参考《k8s in action》

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐