本文主要为您介绍通过虚拟节点运行Job任务的方式,您可以用最小的运维成本(无需调整节点数量)来应对集群计算资源高峰压力。
背景信息
Kubernetes集群的节点资源配置不足会导致Pod无法及时运行,购买过多的节点又会导致资源的闲置浪费。而虚拟节点就像是kubernetes集群的“魔法口袋”,让我们摆脱节点计算力不足的烦扰,也避免了节点的闲置浪费,满足无限计算力的想象,Pod按需创建,轻松应对计算的波峰波谷。Kubernetes集群大规模使用虚拟节点有以下特点:
- 业务有明显的波峰谷特征。
- 使用ECI作为弹性资源池,应对突发流量和Job任务,最大程度降低计算成本。
本例中,创建的Kubernetes托管版集群中,Master节点被托管(用户无需付费),2台Worker均为4c8g规格,所以整个Kubernetes托管版集群的可用计算容量是8c16g。需要运行一个Job离线任务做数据处理,Job的cpu/mem需求为16c32g。此时Job无法在您创建的Kubernetes托管版集群中运行,因为其资源需求已经超过Kubernetes托管版集群的8c16g计算容量。因此,您可以选择把这个Job任务调度到虚拟节点上,而不占用集群本身节点的计算资源。
前提条件
- 您已经创建了一个Kubernetes托管版集群。具体操作,请参见创建Kubernetes托管版集群。
- 您已经在该集群上部署了一个虚拟节点。具体操作,请参见通过部署ACK虚拟节点组件创建ECI Pod。
- 您已经给namespace vk打上alibabacloud.com/eci=true标签。具体操作,请参见通过配置namespace标签的方式创建Pod。
- 通过kubectl连接Kubernetes集群。具体操作,请参见通过kubectl工具连接集群。
操作步骤
因此,可以看到使用虚拟节点运行Job短时间任务可以节省计算成本,减轻集群运维负担,您无需关心集群的计算资源是否充足,也无需关心节点的扩容和缩容。