全部产品
云市场

通过虚拟节点对接Kubernetes集群

更新时间:2019-12-24 12:19:11

简介

本文主要介绍把 ECI 通过虚拟节点(virtual node)方式接入到您的阿里云 Kubernetes 集群,ECI 与 Kubernetes 的Pod 为一一对应的关系。有了虚拟节点,当您的 Kubernetes 集群需要扩容时,无需规划node节点计算容量,直接使用虚拟节点动态创建ECI实例,ECI实例与您集群中的真实节点上的Pod网络互联互通。虚拟节点的工作原理参考 virtual-kubelet 。此外,虚拟节点以Pod为单位按需收费,收费规则参考 ECI计费ack-vn-scenario

前置准备

配置虚拟节点(可选)

1. 在控制台配置虚拟节点

  • 登录容器服务 Kubernetes 控制台,依次选择 『节点』—>『集群』,确认虚拟节点已经部署完成 ack1

  • 登录容器服务 Kubernetes 控制台,依次点击 『市场』 —>『应用目录』 —> 『Helm 发布列表』 ack2

  • 选择需要编辑的虚拟节点,点击『更新』 ack3

  • 更改配置,本章节主要介绍配置多可用区和Pod quota, 其余配置参考 部署virtual-kubelet

    • 配置多可用区:编辑env下的 ECI_VSWITCH ,配置多可用区交换机ID(交换机ID与可用区为一一对应关系,您可以访问 专有网络控制台 查询您的交换机信息),注意VSwitch要属于同一个VPC下,编辑完成后点击 『更新』,配置完成之后,新创建的Pod将会随机调度到多可用区,如果某个可用区出现库存不足,虚拟节点将会为您往其他可用区调度。ack5

    • 配置虚拟节点Pod quota,以下是相关参数说明,由于virtual-kubelet会以Pod形态部署在您集群的真实节点,如果Pod数量超过1000,virtual-kubelet负载较大,建议把virtual-kubelet所在真实节点的配置升级到8c16g以上。参考 升级ECS配置

参数 参数说明
ECI_VSWITCH 虚拟节点交换机配置
ECI_QUOTA_POD 虚拟节点可弹出的Pod上限,默认值1000个
ECI_QUOTA_CPU 虚拟节点可以弹出的CPU总核数,默认值64000
ECI_QUOTA_MEMORY 虚拟节点可以弹出的Memory总数,默认值64Ti

在集群中配置虚拟节点

  • 通过以下命令获取虚拟节点的运行状况,注意这里需要指定命名空间为 kube-system

    1. kubectl get deploy -n kube-system

    下图中的 ack-virtaul-node-controller 就是虚拟节点 ack6

  • 通过以下命令编辑虚拟节点的配置信息,注意这里需要指定命名空间为 kube-system

    1. kubectl edit deploy ack-virtual-node-controller -n kube-system --record

将Pod创建调度到虚拟节点上

请参考 在虚拟节点上创建Pod

真实节点资源不够自动调度到虚拟节点

当您的真实节点cpu、mem资源不够时,您可以使用 virtual-kubelet-autoscaler 插件将Pod创建调度到虚拟节点,无需再预先分配node资源,具体方式参考 通过 virtual-kubelet-autoscaler 将Pod自动调度到虚拟节点