开发者社区> 问答> 正文

如何处理virtual-kubelet多可用区 多规格使用指南?

如何处理virtual-kubelet多可用区 多规格使用指南?

展开
收起
小天使爱美 2020-03-20 17:45:57 1348 0
1 条回答
写回答
取消 提交回答
  • 背景 通过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环境变量,采用逗号分隔

    通常情况deployment部署在kube-system命名空间,名字:ack-virtual-node-controller,用户自定义集群有可能存在差异。

    $ kubectl -n kube-system edit deployment/ack-virtual-node-controller

    修改ECI_VSWITCH,追加vswitch

    • name: ECI_VSWITCH value: "vsw-bp1xpiowfm5vo8o3c3fny,vsw-bp1rkyjgr1xwoho6ko3zp" 2.修改完成后,保存退出,配置多可用区完成。

    工作原理 VK会根据pod的UUID做固定的运算,把创建pod的请求分散到所有的vSwitch中, 做到分散压力的效果。 如果创建pod请求在一个vSwitch中遇到没有库存的情况, 就会切换一个vSwitch继续尝试创建 注:多可用区是Virtual-Kubelet级别,影响节点上的所有Pod创建。

    2020-03-20 17:46:13
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
ACK集群类型选择最佳实践 立即下载
ECS全知道(下) 镜像与快照+块存储、安全、网运维与监控 立即下载
ECS云磁盘热迁移 立即下载