在上一篇博文中(https://yq.aliyun.com/articles/647119),我们展示了如何手动执行yaml文件给Kubernetes集群添加虚拟节点,然而,手动执行的方式用户体验并不友好,也无法以组件的方式持续升级和管理。现在我们已经可以通过Helm的方式,让ack-virtual-node的部署和管理变得更加简单。首先,让我们简单回顾一下虚拟节点Virtual Node是如何运行的。
虚拟节点Virtual Node
![125c7b0412292240629ceb9fb0254b30.png](https://img-blog.csdnimg.cn/img_convert/125c7b0412292240629ceb9fb0254b30.png)
虚拟节点来源于社区virtual kubelet技术,其实现了kubernetes与弹性容器实例ECI的无缝连接,让kubernetes集群轻松获得极大的弹性能力,而不必受限于集群的节点容量,其“虚拟”则体现在节点容量的“无限”。
![7a7f647c52d346ae5811e3b58535d3b2.png](https://img-blog.csdnimg.cn/img_convert/7a7f647c52d346ae5811e3b58535d3b2.png)
在混合集群中,真实节点上的pod与虚拟节点上的pod互联互通。但虚拟节点创建的pod是按需付费,收费规则请参考:https://help.aliyun.com/document_detail/89142.html。pod规格配置支持0.25c至64c,请参考:https://help.aliyun.com/document_detail/89138.html
安装ack-virtual-node插件
首先登录容器服务控制台,创建托管版kubernetes集群。在应用目录页面选择ack-virtual-node。https://cs.console.aliyun.com/#/k8s/catalog/detail/incubator_ack-virtual-node
![f877947e8efb899fd1c55d936466386d.png](https://img-blog.csdnimg.cn/img_convert/f877947e8efb899fd1c55d936466386d.png)
![ac5c4ac1b656aa09ab0909937fc0b6ae.png](https://img-blog.csdnimg.cn/img_convert/ac5c4ac1b656aa09ab0909937fc0b6ae.png)
配置虚拟节点参数,包括Region,AK信息,vswitchId和securityGroupId需要和Kubernetes集群配置相同(可在集群信息页面查看网络配置信息)
![8afd8e1093d00b9eb415569b41ca7b59.png](https://img-blog.csdnimg.cn/img_convert/8afd8e1093d00b9eb415569b41ca7b59.png)
安装Helm插件
![e9e164e738ccd568b982ced3144ea338.png](https://img-blog.csdnimg.cn/img_convert/e9e164e738ccd568b982ced3144ea338.png)
安装成功后,在节点页面可以看到添加了一个节点virtual-kubelet
![d7e092d19e7a7e7e2c212b66f3475403.png](https://img-blog.csdnimg.cn/img_convert/d7e092d19e7a7e7e2c212b66f3475403.png)
通过kubectl命令,我们可以查看节点和helm部署状态,后续也可以通过helm对ack-virtual-node进行升级和管理。
![c183ce6f7c815869dc038d86fc2c7824.png](https://img-blog.csdnimg.cn/img_convert/c183ce6f7c815869dc038d86fc2c7824.png)
基于虚拟节点创建pod
创建如下nginx pod,设置正确的nodeSelector和tolerations,确保pod会被调度到虚拟节点上。
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
nodeSelector:
type: virtual-kubelet
tolerations:
- key: virtual-kubelet.io/provider
operator: Exists
![6b19947d597521e8117871ef65f7fa41.png](https://img-blog.csdnimg.cn/img_convert/6b19947d597521e8117871ef65f7fa41.png)
![a5c17df0f00a4c418e5bffb5ecbd98a7.png](https://img-blog.csdnimg.cn/img_convert/a5c17df0f00a4c418e5bffb5ecbd98a7.png)
使用场景
虚拟节点和Serverless Kubernetes都是基于弹性容器实例ECI构建,都属于Serverless Container产品形态,主要适用于多种Serverless workload场景,可以极大的降低运维成本,降低用户的总体计算成本,提高计算效率。欢迎用户使用。
![10c27b0604328f0f373663cbbb8b0c5e.png](https://img-blog.csdnimg.cn/img_convert/10c27b0604328f0f373663cbbb8b0c5e.png)
原文链接
本文为云栖社区原创内容,未经允许不得转载。