如何处理virtual-kubelet多可用区 多规格使用指南?
背景 通过virtual-kubelet创建ECI实例时,特别是在大规模创建场景下,可能遇到没有库存的情况,所以采用virtual kubelet支持配置多可用区, 多实例规格方案,保证ECI实例创建的成功率。
多规格 使用指南 在创建pod时,用户根据计划使用实例规格的优先级,配置annotation中k8s.aliyun.com/eci-use-specs
apiVersion: v1 kind: Pod metadata: name: multi-specs annotations: "k8s.aliyun.com/eci-use-specs": "64-512Gi,2-4Gi,ecs.c6.xlarge,ecigpu-P100-4" 工作原理 virtual-kubelet节点创建ECI实例时,如果遇到库存不足导致创建失败时,根据k8s.aliyun.com/eci-use-specs中配置的顺序依次重试创建ECI。在重试创建过程中,Pod状态一直处于Pending状态。
注:多规格设置是Pod级别,仅影响单个Pod创建策略。
多可用区 使用指南 多可用区就是给virtual-kubelet节点配置多个不同可用区的vswitch,但是多个vswitch必须属于同一个VPC;首先,在同VPC下,不同可用区,创建vswitch或者使用已有vswitch,获取vswitch ID列表。
阿里云 serverless kubernetes集群 阿里云 serverless kubernetes集群,简称:ASK
新建ASK支持多可用区 在创建ASK集群时,可以选择使用已有专有网络,配置多个虚拟交换机,方式如下:
create_ask_support_multi_zone
存量ASK支持多可用区 ASK集群,由管理员负责统一维护,需要联系ASK管理员,将准备好的虚拟交换机ID,提供给ASK管理员。
其它集群 virtual-kubelet是采用Deployment方式部署,为支持多可用区,需要设置Deployment的环境变量ECI_VSWITCH的value,设置方式区分kubernetes集群类型其它类型的kubernetes集群,需要用户自己更新Deployment实现支持多可用区,修改方式如下:
1.编辑deployment,追加VSwitchID到ECI_VSWITCH环境变量,采用逗号分隔
$ kubectl -n kube-system edit deployment/ack-virtual-node-controller
工作原理 VK会根据pod的UUID做固定的运算,把创建pod的请求分散到所有的vSwitch中, 做到分散压力的效果。 如果创建pod请求在一个vSwitch中遇到没有库存的情况, 就会切换一个vSwitch继续尝试创建 注:多可用区是Virtual-Kubelet级别,影响节点上的所有Pod创建。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。