背景
在上篇关于虚拟节点的文章中, 我们介绍了如何部署虚拟节点 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, 来应对业务突发场景的弹性扩容需求.
来源: https://yq.aliyun.com/articles/699779