负载均衡(loadbalancer)

负载均衡(LoadBalancer)

1. 操作场景

负载均衡 ( LoadBalancer )使用负载均衡直通容器,使部署在容器中的业务时延降低、性能无损耗。
负载均衡访问方式由负载均衡服务地址以及设置的服务端口组成,例如“10.117.117.117:80”。
从集群外部访问时,从LoadBalancer直接转发到Pod;集群内部访问可通过Service转发到Pod。

2. 约束与限制

使用控制台创建LoadBalancer类型的Service时会自动生成一个节点端口(nodeport),端口号随机。使用kubectl创建LoadBalancer类型的Service时,如不指定节点端口,也会随机生成一个节点端口,端口号随机。

3. 创建Service

3.1. 创建步骤

操作详情请参见 创建Service

  • 新建LoadBalancer类型Service,并选择私网访问,创建后会自动从容器网络中分配一个IP以提供服务发现;
  • 新建LoadBalancer类型Service,并选择公网访问,创建后会自动分配一个EIP以提供服务发现。

3.2. 转发策略

容器集群为 LoadBalancer 类型的Service提供了多种转发策略,通过对 LoadBalancer 类型的Service添加注释:service.kubernetes.io/csk-loadbalancer-scheduler: {rr, sh, lc} ,选择不同的转发策略。

注意事项

  • 默认不会添加注释,转发策略为轮询转发。
  • 新建LoadBalancer 类型的Service,可以添加注释选择不同的转发策略。
  • 对于已有LoadBalancer 类型的Service修改转发策略,需要在添加注释后,删除端口映射规则,并重新添加,新的转发策略才能生效。
转发策略 说明
rr (roundrobin) 轮询
sh (source host) 源主机
lc (least connection) 最少连接数

4. 访问service

执行命令kubectl --kubeconfig KUBECONFIG_NAME get svc
回显如下,表示工作负载访问方式已设置成功,工作负载可访问。

    NAME          TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)        AGE   
    kubernetes    ClusterIP      10.247.0.1       <none>           443/TCP        3d   
    nginx-lb-svc  LoadBalancer   172.16.26.7      175.102.135.212  88:31540/TCP   51s

在浏览器中输入访问地址,例如输入175.102.135.212:88,175.102.135.212为负载均衡的IP地址,88为Service的服务端口,即可通过负载均衡访问Pod,如图访问nginx示例:

个结果匹配 ""

    无结果匹配 ""