下面将介绍如何在阿里云容器服务上创建Kubernetes GPU集群。

前提条件

您需要申请一个按量付费的GPU计算型gn5。请提交ECS工单申请开通。

背景信息

Kubernetes深度学习解决方案支持使用云服务器ECS的Kubernetes集群或者GPU服务器Kubernetes集群。本文档以GPU服务器容器集群为例进行说明。
说明 有关如何创建ECS容器集群,参见创建Kubernetes集群

而Kubernetes全新的GPU调度方案基于Nvidia官方的设备插件和nvidia-container-runtime,和之前社区方案相比,最终用户所要做的配置更少。

基于该方案,客户可以将应用程序利用容器技术构建镜像,结合Kubernetes+GPU运行机器学习,图像处理等高运算密度等任务,无需安装nvidia driver和CUDA,就能实现一键部署和弹性扩缩容等功能。

使用限制

  • 目前,gn5型GPU云服务器只支持专有网络(VPC)。
  • 用户账户需有100元的余额并通过实名认证,否则无法创建按量付费的ECS实例和负载均衡。
  • Kubernetes深度学习解决方案要求Kubernetes集群的版本在1.9.3及以上。

操作步骤

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,选择集群 > 集群
  3. 单击集群列表页面右上角的创建Kubernetes集群
    集群列表
  4. 配置集群信息。配置详情,请参考创建Kubernetes集群
    集群配置
    • 进行集群配置时,本例勾选开放公网SSH登录,这样就可以通过SSH登录Kubernetes的Master节点。ssh
    • 进行Worker配置时,本例中选择GPU计算型gn5。实例规格
  5. 完成配置后,单击下一步:确认订单
  6. 单击创建集群。等待一段时间,新建的GPU集群会出现在集群列表中。
  7. 单击集群右侧的管理,进入集群基本信息页面,查看Master节点SSH连接地址。
  8. SSH登录到Master节点,可通过执行如下命令,查找集群下的GPU节点。
     $ kubectl get nodes -l 'aliyun.accelerator/nvidia_name' --show-labels
     ...                               
     NAME                                 STATUS    ROLES     AGE       VERSION   LABELS
     cn-hangzhou.i-bp12xvjjwqe6j7nca2q8   Ready     <none>    1h        v1.9.3    aliyun.accelerator/nvidia_count=1,aliyun.accelerator/nvidia_mem=16276MiB,aliyun.accelerator/nvidia_name=Tesla-P100-PCIE-16GB,..
  9. 查看GPU节点的详细状态信息。
    $ kubectl get node ${node_name} -o=yaml
     ...
     status:
       addresses:
       - address: 172.16.166.23
         type: InternalIP
       allocatable:
         cpu: "8"
         memory: 61578152Ki
         nvidia.com/gpu: "1"
         pods: "110"
       capacity:
         cpu: "8"
         memory: 61680552Ki
         nvidia.com/gpu: "1"
         pods: "110"
     ...

至此,创建的Kubernetes的GPU集群已经创建完毕。