在日常的开发过程中,我们可能需要经常的将负载均衡后面挂载的实例挂载到不同的负载均衡上进行开发测试或者ABTest。这个时候我们需要快速的克隆一个负载均衡,包括相应的监听设置,可能还会包含后端挂载的ECS实例。在通过开发或者测试之后释放。
通过资源编排的ALIYUN::SLB::LoadBalancerClone 我们可以快速的克隆一个已有的负载均衡。
基本属性
-
SourceLoadBalancerId
- 源负载均衡的Id
-
LoadBalancerName
- 新生成的负载均衡名称
-
BackendServersPolicy,支持4种策略。默认为clone。
-
clone
- 仅仅复制源实例上挂载的ECS实例和权重。
-
empty
- 不挂在任何ECS实例
-
append
- 将新定义的实例和权重和原有的实例权重一起挂载
-
replace
- 使用新定义的实例和权重,不加载之前的实例定义。
-
-
BackendServers
- 新添加的服务器的属性设置,为一个数组。数组中的数据类型为一个对象里面有两个属性
ServerId
对应要添加的ECS 实例ID,Weight
权重为0到100。当需要添加一个实例的时候,可以通过下面的属性定义。
- 新添加的服务器的属性设置,为一个数组。数组中的数据类型为一个对象里面有两个属性
"BackendServers": [
{
"ServerId": "i-25i6k5p64",
"Weight": 20
}
]
克隆流程
LoadBalancerClone
在克隆的时候将会首先创建一个同样配置的负载均衡
包括下面的属性:
- 原有的负载均衡的属性配置,
- 公网类型的付费方式
- 网络类型公网或者内网,
- 带宽
- VPC类型将创建在相同的VSwitch中
- 该实例的主实例的可用区ID
当负载均衡的实力创建完成以后,将按照源负载均衡创建全部的监听规则,当监听规则完成以后,将参照之前的监听规则启动相应的规则。
在复制完监听规则后,将进行后端服务器的挂载。在LoadBalancerClone
中提供了4个选项来设置。
模板定义
下面的模板将完全克隆一个负载均衡,如果需要其它定义您可以参照上面的属性进行定制。
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"Name": {
"Description": "新建的负载均衡名称",
"Type": "String"
},
"SourceLBId": {
"Description": "源负载均衡实例Id",
"Type": "String"
}
},
"Resources": {
"SLB": {
"Properties": {
"LoadBalancerName": {
"Ref": "Name"
},
"SourceLoadBalancerId": {
"Ref": "SourceLBId"
}
},
"Type": "ALIYUN::SLB::LoadBalancerClone"
}
},
"Outputs": {
"LoadBalanceDetails": {
"Value": {
"Fn::GetAtt": [
"SLB",
"LoadBalancerId"
]
}
}
}
}