虚拟节点
本文主要介绍虚拟节点及如何通过 Virtual Node Addon 插件部署虚拟节点等。
前提条件
- 您需要创建一个 Kubernetes 托管版集群。详情请参见创建Kubernetes 托管版集群。
- 您需要开通弹性容器实例服务。登录弹性容器实例控制台开通相应的服务。
背景信息
虚拟节点来源于社区的 Virtual Kubelet 技术,其实现了 Kubernetes 与弹性容器实例 ECI 的无缝连接,让 Kubernetes 集群轻松获得极大的弹性能力,而不必受限于集群的节点计算容量。关于Virtual
Kubelet的工作原理及其架构,请参见Virtual Kubelet。图 1. 应用场景

Kubelet的工作原理及其架构,请参见Virtual Kubelet。

基于ECI 的虚拟节点支持多种功能,如 GPU 容器实例、挂载 EIP、大规格容器实例等,不仅增强了 Kubernetes 集群的弹性,同时提供了丰富的能力扩展,让用户可以在一个
Kubernetes 集群中轻松管理多种计算 Workload,满足多种场景下的需求。

Kubernetes 集群中轻松管理多种计算 Workload,满足多种场景下的需求。

在混合集群中,真实节点上的 Pod 与虚拟节点上的 ECI Pod 互联互通。
说明
虚拟节点上的 ECI Pod 是按需收费的,这与真实节点上的计费不同。
ECI 收费规则请参考计费概述。
ECI Pod 规格配置支持 0.25c 至 64c,请参考ECI 实例使用限制。
安装ack-virtual-node插件
在虚拟节点上创建Pod
当集群中存在虚拟节点时,您可以把Pod调度到虚拟节点上,Virtual Kubelet将会创建出相应的ECI Pod。您可以通过以下三种方法操作:
- 通过设置nodeSelector和tolerations来创建Pod。
- 在 Kubernetes 菜单下,单击左侧导航栏中的使用模板创建。
- 选择所需的集群和命名空间,选择样例模板或自定义,然后单击创建。
您可以使用如下 yaml 示例模板创建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
- 在 Kubernetes 菜单下,单击左侧导航栏中的使用模板创建。
- 通过设置nodeName的方式创建 Pod。
- 在 Kubernetes 菜单下,单击左侧导航栏中的使用模板创建。
- 选择所需的集群和命名空间,选择样例模板或自定义,然后单击创建。
您可以使用如下 yaml 示例模板创建Pod。
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - image: nginx imagePullPolicy: Always name: nginx nodeName: virtual-kubelet
- 在 Kubernetes 菜单下,单击左侧导航栏中的使用模板创建。
- 通过配置namespace标签的方式创建Pod。
- 通过Cloudshell 连接 Kubernetes 集群。详细内容请参见在CloudShell上通过kubectl管理Kubernetes集群
- 执行如下命令,创建Pod。
kubectl create ns vk kubectl label namespace vk virtual-node-affinity-injection=enabled kubectl -n vk run nginx --image nginx
在

中,当出现如下界面时,表示 Pod 部署完成。
相关参考
- 基于虚拟节点部署 Ingress 应用
- 使用GPU容器实例
- 如何给 Pod 挂载弹性公网IP
发布者:佚, 佚名,转转请注明出处:https://www.cms2.cn/aliyun/csk/5244.html