在阿里云上轻松部署Kubernetes GPU集群,遇见TensorFlow

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: Kubernetes在版本1.6后正式加入了Nvidia GPU的调度功能,支持在Kubernetes上运行运行和管理基于GPU的应用。而在2017年9月12日,阿里云发布了新的异构计算类型GN5,基于P100 nvidia GPU, 提供灵活强悍的异构计算模型,从基础设施到部署环境全面升级,可有效提升矩阵运算、视频识别、机器学习、搜索排序等处理计算效率。

Kubernetes在版本1.6后正式加入了Nvidia GPU的调度功能,支持在Kubernetes上运行运行和管理基于GPU的应用。而在2017年9月12日,阿里云发布了新的异构计算类型GN5,基于P100 nvidia GPU, 提供灵活强悍的异构计算模型,从基础设施到部署环境全面升级,可有效提升矩阵运算、视频识别、机器学习、搜索排序等处理计算效率。当Kubernetes和GPU在阿里云上相遇,会有什么样美好的事情发生呢?

在阿里云的GN5上部署一套支持GPU的Kubernetes集群是非常简单的,利用ROS模板一键部署,将阿里云强大的计算能力便捷的输送到您的手中。不出10分钟,您就可以开始在阿里云的Kubernetes集群上开始您的Kubernetes+GPU+TensorFlow的深度学习之旅了。

前提准备

  • 您需要开通容器服务、资源编排(ROS)服务和访问控制(RAM)服务。
    登录 容器服务管理控制台ROS 管理控制台RAM 管理控制台 开通相应的服务。
  • 所创建的资源均为按量付费,根据阿里云的计费要求,请确保您的现金账户余额不少于 100 元。
  • 目前,按量付费的异构计算gn5需要申请工单开通。 请登录阿里云账号后 ,按照如下内容提交 ECS 工单
我需要申请按量付费的GPU计算型gn5,请帮忙开通,谢谢。

当审批通过后,您就可以在 ECS控制台按量付费 的计费方式下查看GPU节点是否可用。

使用限制

目前仅支持华北2(北京),华东2(上海)和华南1(深圳)创建Kubernetes的GPU集群。

集群部署

在本文中, 我们提供了部署单Master节点,并可以配置worker的节点数,同时可以按需扩容和缩容,创建和销毁集群也是非常简单的。

  1. 选择ROS创建入口
  • 单击此处创建一个位于华北2的GPU Kubernetes集群
  • 单击此处创建一个位于华东2的GPU Kubernetes集群
  • 单击此处创建一个位于华南1的GPU Kubernetes集群

2. 填写参数并单击 创建

  • 栈名:所部署的 Kubernetes 集群属于一个 ROS 的栈,栈名称在同一个地域内不能重复。
  • 创建超时:整个部署过程的超时时间,默认为 60 分钟,无需修改。
  • 失败回滚:选择 失败回滚 时,如果部署过程中发生不可自动修复性错误,将删除所有已创建资源;反之,已创建资源将被保留,以便进行问题排查。
  • Master节点ECS实例规格:指定 Master 节点所运行的 ECS 实例的规格,默认为 ecs.n4.large。
  • Worker节点ECS实例规格:指定 Worker 节点所运行的包含GPU的 ECS 实例规格,默认为 ecs.gn5-c4g1.xlarge。具体配置可以查看ECS规格文档
  • 部署GPU节点的可用区:指定 GPU节点可以部署的可用区,请根据具体地域选择。
  • ECS系统镜像:目前指定 centos_7。
  • Worker节点数:指定 Worker 节点数,默认为 2,支持后期扩容。
  • ECS登录密码:所创建的 ECS 实例可通过此密码登录,请务必牢记密码。

3. 单击 创建, 启动部署

这样,部署请求已经成功提交。 可以单击 进入事件列表 实时监控部署过程

4. 点击概览查看,部署完成后的输出结果

通过输出结果中返回的信息,可以对 Kubernetes 集群进行管理:

  • APIServer_Internet:Kubernetes 的 API server 对公网提供服务的地址和端口,可以通过此服务在用户终端使用 kubectl 等工具管理集群。
  • AdminGateway:可以直接通过 SSH 登录到 Master 节点,以便对集群进行日常维护。
  • APIServer_Intranet:Kubernetes 的 API server 对集群内部提供服务的地址和端口。

5. 通过通过 kubectl 连接 Kubernetes 集群 , 并且通过命令查看GPU节点

kubectl describe  node {node-name}
Name:            cn-beijing.i-{name}
Role:
...
Addresses:
  InternalIP:    192.168.2.74
Capacity:
 alpha.kubernetes.io/nvidia-gpu:    1
 cpu:                    4
 memory:                30717616Ki
 pods:                    110
Allocatable:
 alpha.kubernetes.io/nvidia-gpu:    1
 cpu:                    4
 memory:                30615216Ki
 pods:                    110
...

可以看到总共的和可分配的GPU数量都为1。

部署GPU应用

最后我们部署一个基于GPU的TensorFlow Jupyter应用来做一下简单的测试,以下为我们的Jupyter的部署配置文件jupyter.yml

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: jupyter
spec:
  replicas: 1
  template:
    metadata:
      labels:
        k8s-app: jupyter
    spec:
      containers:
      - name: jupyter
        image: registry-vpc.cn-beijing.aliyuncs.com/tensorflow-samples/jupyter:1.1.0-devel-gpu
        imagePullPolicy: IfNotPresent
        env:
          - name: PASSWORD
            value: mypassw0rd
        resources:
          limits:
            alpha.kubernetes.io/nvidia-gpu: 1
        volumeMounts:
        - mountPath: /usr/local/nvidia
          name: nvidia
      volumes:
        - hostPath:
            path: /var/lib/nvidia-docker/volumes/nvidia_driver/375.39
          name: nvidia

---
apiVersion: v1
kind: Service
metadata:
  name: jupyter-svc
spec:
  ports:
  - port: 80
    targetPort: 8888
    name: jupyter
  selector:
    k8s-app: jupyter
  type: LoadBalancer

Deployment配置:

  • alpha.kubernetes.io/nvidia-gpu 指定调用nvidia gpu的数量
  • type=LoadBalancer 指定使用阿里云的负载均衡访问内部服务和负载均衡
  • 为了能让GPU容器运行起来,需要将Nvidia驱动和CUDA库文件指定到容器中。这里需要使用hostPath,在阿里云上您只需要将hostPath指定到/var/lib/nvidia-docker/volumes/nvidia_driver/375.39即可,并不需要指定多个bin和lib目录。
  • 环境变量 PASSWORD 指定了访问Jupyter服务的密码,您可以按照您的需要修改

1. 按照文档介绍的方式连接Kubernetes Web UI, 点击 CREATE 创建应用

2. 单击 Upload a YAML or JSON file。选择刚才创建的 jupyter.yml 文件

3. 待部署成功后, 在 Kubernetes Web UI 上定位到 default 命名空间,选择 Services。

可以看到刚刚创建的 jupyter-svc 的 jupyter 服务的外部负载均衡地址(External endpoints)

4. 点击外部负载均衡的地址,您就可以直接访问到Jupyter服务, 通过web Terminal内执行nvidia-smi命令查看容器内GPU设备状况。我们可以看到当前的容器里已经分配了一块Tesla P100 的GPU卡。

这样,您就可以正式开始自己的深度学习之旅

总结

利用阿里云容器服务的Kubernetes+GPU部署方案,您无需操心复杂Nvidia驱动和Kubernetes集群配置,一键部署,不出十分钟就可以轻松获得阿里云强大的异构计算能力和Kubernetes的GPU应用部署调度能力。这样您就可以专心的构建和运行自己的深度学习应用了。欢迎您尝试和体验。

后续我们会提供通过阿里云容器服务直接和部署Kubernetes+GPU的能力,敬请期待哦!

了解更多阿里云容器服务内容, 请访问https://www.aliyun.com/product/containerservice

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
1天前
|
人工智能 Prometheus 监控
使用 NVIDIA NIM 在阿里云容器服务(ACK)中加速 LLM 推理
本文介绍了在阿里云容器服务 ACK 上部署 NVIDIA NIM,结合云原生 AI 套件和 KServe 快速构建高性能模型推理服务的方法。通过阿里云 Prometheus 和 Grafana 实现实时监控,并基于排队请求数配置弹性扩缩容策略,提升服务稳定性和效率。文章提供了详细的部署步骤和示例,帮助读者快速搭建和优化模型推理服务。
14 7
使用 NVIDIA NIM 在阿里云容器服务(ACK)中加速 LLM 推理
|
2天前
|
人工智能 Prometheus 监控
使用NVIDIA NIM在阿里云ACK中加速LLM推理
介绍在阿里云ACK集群上结合AI套件能力快速部署NVIDIA NIM模型推理服务,同时提供全面的监控指标和实现弹性伸缩。
使用NVIDIA NIM在阿里云ACK中加速LLM推理
|
5天前
|
Kubernetes 网络虚拟化 Docker
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
文章提供了一个解决方案,用于在无法直接访问Google镜像仓库的情况下,通过使用阿里云镜像来下载kubeadm所需的Kubernetes镜像。
13 3
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
|
20天前
|
运维 Kubernetes Devops
阿里云云效操作报错合集之k8s直接返回401,该如何排查
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
阿里云云效操作报错合集之k8s直接返回401,该如何排查
|
16天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云AI服务器价格表_GPU服务器租赁费用_AI人工智能高性能计算推理
阿里云AI服务器提供多样化的选择,包括CPU+GPU、CPU+FPGA等多种配置,适用于人工智能、机器学习和深度学习等计算密集型任务。其中,GPU服务器整合高性能CPU平台,单实例可实现最高5PFLOPS的混合精度计算能力。根据不同GPU类型(如NVIDIA A10、V100、T4等)和应用场景(如AI训练、推理、科学计算等),价格从数百到数千元不等。详情及更多实例规格可见阿里云官方页面。
|
7天前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
17 0
|
7天前
|
前端开发 开发者 设计模式
揭秘Uno Platform状态管理之道:INotifyPropertyChanged、依赖注入、MVVM大对决,帮你找到最佳策略!
【8月更文挑战第31天】本文对比分析了 Uno Platform 中的关键状态管理策略,包括内置的 INotifyPropertyChanged、依赖注入及 MVVM 框架。INotifyPropertyChanged 方案简单易用,适合小型项目;依赖注入则更灵活,支持状态共享与持久化,适用于复杂场景;MVVM 框架通过分离视图、视图模型和模型,使状态管理更清晰,适合大型项目。开发者可根据项目需求和技术栈选择合适的状态管理方案,以实现高效管理。
16 0
|
20天前
|
敏捷开发 Kubernetes 测试技术
阿里云云效产品使用合集之如何在K8s集群上进行构建
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
23天前
|
机器学习/深度学习 编解码 人工智能
阿里云gpu云服务器租用价格:最新收费标准与活动价格及热门实例解析
随着人工智能、大数据和深度学习等领域的快速发展,GPU服务器的需求日益增长。阿里云的GPU服务器凭借强大的计算能力和灵活的资源配置,成为众多用户的首选。很多用户比较关心gpu云服务器的收费标准与活动价格情况,目前计算型gn6v实例云服务器一周价格为2138.27元/1周起,月付价格为3830.00元/1个月起;计算型gn7i实例云服务器一周价格为1793.30元/1周起,月付价格为3213.99元/1个月起;计算型 gn6i实例云服务器一周价格为942.11元/1周起,月付价格为1694.00元/1个月起。本文为大家整理汇总了gpu云服务器的最新收费标准与活动价格情况,以供参考。
阿里云gpu云服务器租用价格:最新收费标准与活动价格及热门实例解析
|
1月前
|
编解码 分布式计算 Linux
最新阿里云服务器、轻量应用服务器、GPU云服务器活动价格参考
阿里云服务器产品包含云服务器、轻量应用服务器、GPU云服务器等,本文汇总了这些云服务器当下最新的实时活动价格情况,包含经济型e实例云服务器价格、通用算力型u1实例云服务器价格、第七代云服务器价格、轻量应用服务器最新价格、GPU云服务器价格,以供大家参考。
最新阿里云服务器、轻量应用服务器、GPU云服务器活动价格参考

相关产品

  • 容器服务Kubernetes版
  • 下一篇
    DDNS