在上一篇博文中(https://yq.aliyun.com/article...),我们展示了如何手动执行yaml文件给Kubernetes集群添加虚拟节点,然而,手动执行的方式用户体验并不友好,也无法以组件的方式持续升级和管理。现在我们已经可以通过Helm的方式,让ack-virtual-node的部署和管理变得更加简单。首先,让我们简单回顾一下虚拟节点Virtual Node是如何运行的。

虚拟节点Virtual Node
图片描述
虚拟节点来源于社区virtual kubelet技术,其实现了kubernetes与弹性容器实例ECI的无缝连接,让kubernetes集群轻松获得极大的弹性能力,而不必受限于集群的节点容量,其“虚拟”则体现在节点容量的“无限”。

图片描述

在混合集群中,真实节点上的pod与虚拟节点上的pod互联互通。但虚拟节点创建的pod是按需付费,收费规则请参考:https://help.aliyun.com/docum...。pod规格配置支持0.25c至64c,请参考:https://help.aliyun.com/docum...

安装ack-virtual-node插件
首先登录容器服务控制台,创建托管版kubernetes集群。在应用目录页面选择ack-virtual-node。
https://cs.console.aliyun.com...

图片描述

图片描述

配置虚拟节点参数,包括Region,AK信息,vswitchId和securityGroupId需要和Kubernetes集群配置相同(可在集群信息页面查看网络配置信息)

图片描述

安装Helm插件

图片描述

安装成功后,在节点页面可以看到添加了一个节点virtual-kubelet
图片描述

通过kubectl命令,我们可以查看节点和helm部署状态,后续也可以通过helm对ack-virtual-node进行升级和管理。
图片描述

基于虚拟节点创建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

图片描述

图片描述

使用场景
虚拟节点和Serverless Kubernetes都是基于弹性容器实例ECI构建,都属于Serverless Container产品形态,主要适用于多种Serverless workload场景,可以极大的降低运维成本,降低用户的总体计算成本,提高计算效率。欢迎用户使用。
图片描述


暖忆
375 声望39 粉丝