Kubernetes-Load Balancer
2020-01-20 本文已影响0人
Hughman
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上。