部署负载均衡集群
一个负载均衡集群一般由两个lbagent组成主备切换的高可用集群,其中通过keepalived实现主备自动切换。
Lbagent是负责负载均衡数据转发的节点,可以部署在经典网络的虚拟机,或者物理机上。
Lbagent内部署了如下软件,实现高可用的4层和7层负载均衡功能:
- haproxy:负责TCP四层 负载均衡和http/https七层负责均衡
- gobetween: 负责UDP四层负载均衡转发
- keepalived: 负责主备节点的切换
在使用负载均衡功能前,需要有实现负载均衡转发功能的由Lbagent组成的负载均衡集群。 本文介绍如何部署Lbagent以组成负载均衡集群。
3.10(含)之后版本部署Lbagent
自3.10(含)版本之后,负载均衡开始支持VPC内虚拟机的负载均衡,并可以挂载EIP。同时,部署流程更新为:
- 使用ocboot将已有虚拟机或物理机部署为lbagent节点
- 创建lbcluster
- 将一对lbagent节点和一个lbcluster关联,实现lbagent的自动化配置
lbagent节点的部署
采用ocboot,采用如下命令将地址为<ip_of_lbagent_node>的经典网络虚拟机或物理机部署为一台lbagent:
下载 ocboot 代码:
# Use git clone the ocboot deployment tool locally
$ git clone -b release/3.10 https://github.com/yunionio/ocboot && cd ./ocboot
部署 Lbagent 节点:
$ ./ocboot.py add-lbagent <ip_of_master_node> <ip_of_lbagent_node>
部署成功的lbagent节点是k8s集群的一个节点,并且带有如下label:
onecloud.yunion.io/lbagent=enable
然后再到 Web 前端控制台创建 “负载均衡集群”,然后把“节点”关联到对应的集群即可。
注意:3.10(含)之后,负载均衡节点部署后并不会自动关联负载均衡集群,需要手动关联,关联之后节点上的负载均衡组件才会开始正常工作。可以在web控制台关联,或通过如下climc命令关联:
climc lbagent-join-cluster --cluster-id CLUSTER_ID AGENT_ID
3.9(含)之前版本部署Lbagent
3.9(含)之前版本负载均衡仅支持经典网络,采用前端界面部署Lbagent,部署流程如下:
- 创建负载均衡集群(lbcluster)
- 为lbcluster创建一对lbagent
- 在前端界面的lbagent列表上,点击lbagent的“部署”,输入lbagent所需keystone账号,repo地址等信息,通过后端的ansible脚本自动化实现lbagent的部署。