7. 负载均衡及高可用
7.1 本节目标
- 理解spine leaf 络下,服务高可用及负载均衡原理;
- 学习在leaf交换机和服务器上进行相关配置;
7.2 方案对比
在二层 络中,长长采用主备的方式保证服务的高可用,而spine leaf 络下则是采用多活的方式,克服了在全三层 络中不能使用keepalived等HA软件的缺陷,还且实现了负载均衡和高可用。
7.2.1 主备方式
如上图所示,再二层 络中,服务依靠keepalived选举出master和slave节点,vip(浮动ip)始终只在master节点上存在,交换机对vip的流量也是进行二层转发,向vip发起请求的流量都只会发送到master节点,slave节点不负载流量。当master节点不可用时,触发keepalived重新选举,slave被提升为master节点,vip随之漂移到新的master节点上,新的master节点开始接受vip的流量,实现了服务的高可用,然而在主备切换过程中,可能会出现 络闪断或服务短时间不可用的现象。
7.2.2 多活方式
如上图所示,在spine leaf 络下,服务所在的两个节点上都配置了vip,路由器上为vip配了两条ECMP等价路由,下一跳分别指向服务所在的两个节点,这样,向vip发起请求的流量就会以负载均衡的方式发送到了两个节点。当其中一个节点不可用时,路由器自动删除相应的路由条目,使流量只发往健康的节点,也保证了高可用,且不会由于单一节点的故障而造成业务闪断。
下面我们就介绍一下在spine leaf 络下如何根据不同场景,来配置服务的多活。
7.3 多活应用场景讨论
7.3.1 应用场景1 – 服务位于物理节点
要求
- 在devopsr01n01和devopsr01n02两台物理机上装有PGPOOL;
- 这两个PGPOOL以多活(而不是主备)的方式,同时对客户端提供服务;
拓扑
方案说明
- PGPOOL服务暴露一个vip(virtual ip)给客户端用于连接;
- 由于两个物理节点需要以多活的方式提供服务,因此需要在两个物理节点上都配置这个vip;
- 在服务所在物理节点(devopsr01n01,devopsr01n02)所接的一对leaf交换机(leaf01/02)上,配置目标为vip静态路由,以ECMP方式设置下一跳为两个PGPOOL节点;
配置
-
在物理节点上配置vip,用于PGPOOL服务;
-
在leaf交换机上配置等价路由
-
同前面两节中,需要判断路由有效性一样,需要在两个leaf交换机的PingCheck的脚本中加入下面内容
7.3.2 应用场景2 – 服务位于虚拟节点
要求
- 在ks1和ks2两台VM装有proxy服务;
- 这两个proxy以多活(而不是主备)的方式,同时对客户端提供服务;
拓扑
方案说明
- proxy服务暴露一个vip(virtual ip)给客户端用于连接;
- 由于两个proxy节点需要以多活的方式提供服务,因此需要在两个VM上都配置这个vip;
- 在服务所在VM(KS1,KS2)的宿主机所接的一对leaf交换机(leaf01/02)上,配置目标为vip静态路由,以ECMP方式设置下一跳为两个VM节点;
- 在VM的宿主机上配置到vip的路由,并根据VM的健康状态切换vip的路由;
配置
-
在VM上配置proxy服务的vip, 设为10.10.40.21
-
在宿主机上配置到vip的路由,由于vip在VM上, 可通过br0直接到达,因此在宿主机上将vip指向br0即可, 下一跳可以设为VM的业务ip,以devopsr01n01为例:
-
试想这样一种情形, 虚拟节点ks2宕机, devopsr01n01需要连接proxy服务,此时ks2应当向ks1上的proxy服务发起请求,然而,当devopsr01n01查询自己的路由表,发现proxy的vip指向了br0, 于是将请求发往了br0, 而永远也无法到达ks1,从而发生故障,因此,在devopsr01n01物理节点上,需要根据位于本物理节点上的proxy服务所在VM(ks2)的健康状态,来决定proxy vip的路由选择, 当ks2健康时,将proxy vip路由指向br0, 否则,使prxoy vip使用默认路由,发往leaf交换机,由交换机为proxy vip选择路由, 此处使用crontab运行脚本来实现健康检查及路由选择,以devopsr01n01为例,脚本如下:
- 在devopsr01n02上,按例进行配置即可。
-
在leaf交换机上进行相应配置,与应用场景1相似,在交换机上添加ECMP路由,并加入路由有效性判断即可
7.4 小结
本节介绍了spine leaf 络下,以多活的方式提供服务的原理及相关配置,并分别讨论了服务位于虚拟节点和物理节点上两种场景。
上一节: 叶脊(Spine-Leaf) 络拓扑下全三层 络设计与实践(六) – 虚拟机路由方案及配置
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!