CCE Virtual Kubelet组件
当您需要在短时间内快速创建大量Pod时,BCC节点扩容速度可能无法满足要求,而预留额外的BCC节点又会产生资源浪费。可通过安装CCE Virtual Kubelet组件,该组件创建CCE虚拟节点,将Pod快速通过CCE虚拟节点调度到弹性容器实例BCI上运行,且无需购买和管理BCC节点。
本文介绍如何在CCE集群(CCE标准托管集群和CCE标准独立集群)中将Pod调度到BCI上运行。
组件介绍
CCE Virtual Kubelet 组件是基于社区开源项目Virtual Kubelet,实现Kubernetes与弹性容器实例BCI的无缝连接。Kubernetes集群可以轻松获得极大的弹性能力,而不必受限于集群的节点计算容量。您可以灵活地按需创建BCI Pod,无需自行规划集群容量。
CCE Virtual Kubelet 将应用Pod以Serverless容器(BCI)方式运行,提供弹性、免容量规划、按需使用、按需计费的能力。在Job类任务、CI/CD、Spark大数据计算、在线应用弹性等场景中可以显著提升应用部署的弹性效率,以及降低应用的计算成本。
适用场景
在BCI上运行Pod适合应对突发流量,也能降低计算成本。典型场景包括:
- 有明显波峰波谷的在线业务:例如在线教育、电商等业务的流量通常有明显的波峰波谷,使用BCI Pod可以更快速地应对突发流量,降低计算成本。
-
非持续运行的计算任务,使用BCI Pod运行计算任务,无需保留固定节点,仅需为任务执行期间的计算资源付费,降低计算成本,例如:
- 数据计算:Spark大数据计算
- CI/CD Pipeline
- Job任务:例如定时任务、AI任务等。
组件功能
使用说明
前提条件
- 已创建CCE标准托管集群或者CCE标准独立集群,且集群版本为1.18.9/1.20.8/1.22.5/1.24.4/1.26.9/1.28.8。如需创建集群则见创建集群。
- 已开通弹性容器实例服务并确认集群所在区域在BCI支持的地域列表内。可登录弹性容器实例控制台开通相应的服务,并查看当前支持的地域和可用区。
步骤一:部署CCE Virtual Kubelet组件
在CCE集群中,需要通过组件管理页面部署CCE Virtual Kubelet组件,根据两种不同集群类型,请按照如下不同步骤
注意:若您已通过Helm模板安装cce-virtaul-kubelet,暂不支持在组件管理安装,若您想通过组件中心安装则可 提交工单 联系我们处理。
步骤二:将Pod调度到BCI上运行
在虚拟节点启动Pod
相较于常规Pod,需要在Pod Spec中添加如下的nodeSelector和tolerations字段,才能将Pod调度到虚拟节点上。
Pod Spec示例:
spec:
nodeSelector:
type: "virtual-kubelet"
tolerations:
- key: "virtual-kubelet.io/provider"
operator: "Equal"
value: "baidu"
effect: "NoSchedule"
调度到虚拟节点上的Pod会以BCI Pod的形式启动。 更多BCI Pod配置项说明请参考 配置BCI Pod
相关操作
为了使用虚拟节点的一些更高级的特性,后续您可能需要升级CCE Virtual Kubelet组件或者修改CCE虚拟节点配置。当您不再需要使用虚拟节点时,也可以卸载CCE Virtual Kubelet组件。
升级CCE Virtual Kubelet组件
升级耗时约1分钟。升级过程中无法新建Pod,但对存量Pod不造成影响。升级步骤如下:
- 登录容器服务管理控制台,在左侧导航栏选择集群。
- 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 组件管理。
- 在组件管理页面的核心组件区域,选择CCE Virtual Kubelet组件,然后单击升级,并按照页面提示完成操作。
注意:若曾使用Helm模板安装组件的,暂不支持在组件中心升级,可通过Helm模板中心升级;若您想通过组件中心升级则可 提交工单 联系我们处理。
修改CCE虚拟节点配置
关于修改CCE虚拟节点配置的操作,请参见配置bci-profile。
卸载CCE Virtual Kubelet组件
- 登录容器服务管理控制台,在左侧导航栏选择集群。
- 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 组件管理。
- 在组件管理页面的核心组件区域,选择CCE Virtual Kubelet组件,然后单击卸载,并按照页面提示完成操作。若您的虚拟节点上仍存在BCI Pod,将提示无法卸载