全部产品

多可用区创建

更新时间:2020-09-23 16:30:09

当您在应对突发流量时进行业务的快速水平扩容,或者启动大量实例进行Job任务处理时,可能会遇到可用区对应规格实例库存不足或者指定的交换机IP耗尽等极端情况,导致实例创建失败,影响业务。ECI提供多可用区特性来提高实例的创建成功率。

使用限制:

  • 指定的多可用区交换机必须属于同一个VPC,最多可指定10个交换机(vSwitch)ID。

工作原理

  • ECI会随机把创建pod的请求分散到所有的vSwitch中, 做到分散压力的效果。

  • 如果创建pod请求在某一个vSwitch中遇到没有库存的情况, 会自动切换到下一个vSwitch继续尝试创建。

注意

多可用区是

Virtual-Kubelet(虚拟节点)级别

,影响节点上的所有Pod创建。

Kubernetes方式

阿里云 serverless kubernetes集群

阿里云 serverless kubernetes集群,简称:ASK。

新建ASK支持多可用区

在创建ASK集群时,可以选择使用已有专有网络,配置多个虚拟交换机,方式如下:

存量ASK支持多可用区

1.编辑ConfigMap,追加VSwitchIDeci-profiledata.vswitch字段,采用逗号分隔。

$ kubectl edit cm -n kube-system eci-profile

# 修改data.vswitch,追加vswitch
vswitch: vsw-1xxx,vsw-2xxx
			

2.修改完成后,保存退出,配置多可用区完成。

其它集群(ACK或者用户自建)

virtual-kubelet采用StatefulSet方式部署,为支持多可用区,需要设置StatefulSet的环境变量ECI_VSWITCHvalue,需要用户自己更新StatefulSet实现支持多可用区,修改方式如下:

1.编辑statefulset,追加VSwitchIDECI_VSWITCH环境变量,采用逗号分隔。

# 通常情况statefulset部署在kube-system命名空间,名字:virtual-node-eci,用户自定义集群有可能存在差异。
$ kubectl -n kube-system edit statefulset/virtual-node-eci

# 修改ECI_VSWITCH,追加vswitch
- name: ECI_VSWITCH
  value: "vsw-bp1xpiowfm5vo8o3c3fny,vsw-bp1rkyjgr1xwoho6ko3zp" 

2.修改完成后,保存退出,配置多可用区完成。

OpenAPI方式

通过CreateContainerGroup OpenAPI进行实例创建时,可以通过VSwitchId来指定多可用区,通过InstanceType来指定多规格,其他参数的使用请参考CreateContainerGroup使用文档

请求参数:

名称

类型

是否必选

示例值

描述

VSwitchId

String

vsw-***

指定虚拟交换机 ID,可以通过“,”进行分隔传入最多10个值,比如“vsw-***,vsw-***”

InstanceType

String

ecs.c5.xlarge

实例规格,可以通过“,”进行分隔传入最多5个值,比如“ecs.c5.xlarge,ecs.g5.xlarge”

多规格创建

您可以配合多可用区和多规格创建ECI,极大提升ECI的创建成功率。多规格创建请参见多规格创建