Orion Kubernetes device plugin 为符合 Kubernetes device plugin 接口规范的设备扩展插件。配合 Orion GPU 虚拟化方案,可以无缝地在一个Kubernetes 集群里面添加 Orion 的 vGPU 资源,从而在部署应用的时候,使用 Orion vGPU。
Orion的虚拟化方案分为本地GPU虚拟化方案和分布式GPU资源池化方案(具体参看 User Guide),Orion Kubernetes device plugin支持两种虚拟化方案,但是本文档仅仅针对本地GPU虚拟化方案提供部署方案。
- x86_64
- 64位 Ubuntu 16.04 LTS,64位 Ubuntu 14.04 LTS
- 64位 CentOS 7.x
- Kubernetes 1.10 及以后版本
以下步骤除非特殊声明,均假定用户已经按照User Guide或者Quick Start在每个节点上安装了必要的Orion组件。
以下步骤仅仅针对本地GPU虚拟化方案,也即是Orion Client,Orion Server和Orion Controller均部署在一个计算节点上。
- 通过网络获取安装包 git clone https://github.com/virtaitech/orion.git
- 把Orion安装包orion拷贝至每个Kubernetes计算节点内。以放至/root目录为例
- 如有防火墙,对计算节点内开放端口9123以及端口9600,9601
- 启动Kubernetes的服务
- 通过以下命令编辑配置文件
vim /etc/orion/server.conf
修改 “bind_addr = 127.0.0.1”为本机container环境虚拟网关的IP地址。(一般为ifconfig docker0显示的IP地址,例如172.17.0.1)
修改 controller_addr = 127.0.0.1:9123”为本机container环境虚拟网关的IP地址。(一般为ifconfig docker0显示的IP地址,例如172.17.0.1)
- 通过以下命令重新启动Orion Server服务
systemctl restart oriond
- 在每个计算节点运行Kubernetes Orion Device Plugin
cd /root/orion
./k8s-orion-plugin -controller 172.17.0.1:9123
上述参数“172.17.0.1”必须和步骤2的container环境虚拟网关的IP地址保持一致
在Kubernetes管理节点上使用Kubernetes的命令行工具执行如下命令
kubectl describe nodes
在屏幕输出中,在运行了Orion Server服务的节点状态里面,应该在“Capacity”以及“Allocatable”字段的资源列表中看到类似于“virtaitech.com/gpu: 4”的vGPU资源。最后一个数字表示本节点内vGPU的数目。
用户配置POD的yaml文件应该包含如下的内容
resources:
limits:
virtaitech.com/gpu: 1
env:
- name : ORION_GMEM
value : "4096"
上述表明该POD使用1个Orion的vGPU,每个vGPU的显存大小为4096MB
通过Kubernetes的UI使用上述配置文件启动一个POD。该POD会自动启动在已经部署了Orion Server服务的计算节点中