本篇是关于IBM Cloud CIS服务的第三篇文章,给大家介绍如何使用IBM Cloud CIS服务来实现全球负载均衡。
CIS的负载均衡能够平衡全球多区域服务器站点之间的流量,确保你的应用高度可用,还有助于降低延迟。其就近接入和区域导向的功能可以实现最终用户流量就近访问服务器以及导向特定区域的服务器。从而在任何情况下,均可为客户提供服务及最佳的访问性能。
通过运行状况检查,可以将流量从不正常的源站上移开,并动态地将其分配到可用性最高、响应速度最快的服务器池中。如下图所示
CIS全球负载均衡的关键功能包括:
- 全局和局部负载平衡
- 支持 HTTPS 和 TCP 流量
- 快速故障转移,无停机时间
- 动态转向
- 基于地理的转向
- 包含DDoS防护
- 可配置服务源权重
- Session会话粘性
详细的全球负载均衡介绍可以参考在线文档:
https://cloud.ibm.com/docs/cis?topic=cis-getting-started
若要创建一个全球负载均衡服务,首先我们需要访问CIS实例下的可靠性页面,选择全局负载均衡器:
均衡负载器由运行状况检查工具,源池和负载均衡器本身这三部分来构成。这里,我已经预先创建了一个运行状况检查工具:
创建运行状况检查时我们需要指定协议类型,监听url路径及端口,监听方法(get,Head),监听事件间隔,超时及重试次数,还有期望的响应代码等信息。
创建完运行状况检查,我们需要添加负载均衡所访问的源服务器池
其中源阈值表示此源池中最少必须有多少个服务器正常运行,此池才能处理流量。如果运行正常的服务器的数量小于此数字,那么会将该池标记为运行不正常,并将故障转移到下一个可用池。
运行状况检查区域表示运行状况检查将执行监视的区域。
通知电子邮件设置为接收运行状况通知的邮件地址。
缺省情况下,所有流量都使用循环协议在池中的源服务器之间均匀分布,可以使用权重指定流量的多大比例将转至该源服务器。
目前所有源池下最多只能有100个源服务器,如果实际环境需要超过这个数,那么可以通过开工单的方式请求放开,但会需要额外的费用。
接下来添加负载均衡器本身
这里需要注意的是如果代理选项不开启,流量其实没有通过CIS来负载均衡,只是DNS层面的负载均衡,可能导致客户端流量无法正常实现正确的负载均衡导向,也无法选择Session会话亲缘功能,无法使用CIS的DDoS防护功能。
针对添加的源池,可以指定优先级,优先级最低(数值最大)的源池是指定的“回退池”。在给定区域的所有池停机时,流量将路由到回退池,而无论其运行状况如何。
对于流量路由到哪个源池有以下四种策略:
- Off: 路由到缺省源池
- Region: 路由到通过地理位置路径指定的源池
- Random: 路由到一个随机选择的源池
- Dynamic_latency: 路由到缺省源池中访问延时最低的一个池(目前只能通过CLI来设置)
以下在Cloud Shell窗口通过CIS CLI创建了一个GLB实例,有两个源池,一个服务器在东京,还有一个服务器在美国达拉斯,并且指定路由策略为dynamic_route
xudongz@cloudshell:~$ ibmcloud cis glb-create 1e90ca3bb41a170de66d8492daadc2c7 --json '{"description":"Example global load balancer","name":"dynamic-route.cispocdemo.com","ttl":60,"fallback_pool":"ddc527b63ae3c1cd991e9aaa76f26953","default_pools":["ddc527b63ae3c1cd991e9aaa76f26953","899e61f9fccbb9bdc8e57774e2e46f1d"], "steering_policy":"dynamic_latency"}'
Creating GLB in domain '1e90ca3bb41a170de66d8492daadc2c7' for service instance 'Internet Services-PoC' ...
OK
ID a0759696f0682d531e143298bfa331b0
Name dynamic-route.cispocdemo.com
Created On 2020-06-28 05:14:11.878645 +0000 UTC
Modified On 2020-06-28 05:14:11.878645 +0000 UTC
Description Example global load balancer
Proxied false
TTL 60
Fallback Pool ddc527b63ae3c1cd991e9aaa76f26953
Default Pools ddc527b63ae3c1cd991e9aaa76f26953, 899e61f9fccbb9bdc8e57774e2e46f1d
Region Pools
Session Affinity none
Session Affinity TTL 0
Steering Policy dynamic_latency
Available Pools 0/2
创建完负载均衡器以后,如果在运行中发现有源服务器运行状态异常,可以通过以下页面查看具体的异常信息,以便排查问题
关于CIS全球负载均衡就介绍到这里,下一篇会继续分享如何通过CIS配置CDN服务。