背景
在上篇关于虚拟节点的文章中,我们介绍了如何部署虚拟节点Chart及简单使用方法。在实际场景中,应用往往需要暴露Service或者Ingress让用户访问。这里我们将介绍如何使用虚拟节点支持Ingress后端应用的部署和扩容,利用ECI支撑Ingress应用的弹性扩容,使集群无需创建新节点即可为应用扩容“无限”容量,满足业务高峰低谷的弹性需求。实践步骤如下。
1. 部署虚拟节点
参照文章部署虚拟节点,完成后在节点页面可以看到新增的虚拟节点virtual-kubelet。
同时我们给namespace vk打上标签“virtual-node-affinity-injection: enabled”,表示其中的pod将会优先调度到虚拟节点上。
2. 在虚拟节点上部署Ingress应用
我们选择在vk namespace中部署一个简单的ingress示例应用,在控制台使用模版创建yaml。
部署成功后可查看相关资源状态,pod都运行在virtual-kubelet节点之上。
访问ingress应用:
值得强调的是,通过虚拟节点创建的新增eci pod并没有占用k8s集群的节点计算资源,虚拟节点让我们轻松实现应用的“无限”扩容,让集群拥有“无限”容量,以应用pod为单位弹性伸缩而不用关心集群和节点的capacity,来应对业务突发场景的弹性扩容需求。