`
yuun
  • 浏览: 58421 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

摘要: 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 工单

 


 

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

 


 

使用限制

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

集群部署

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

选择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节点

 


 

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

部署GPU应用

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

 


 

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://yq.aliyun.com/articles/203865?spm=5176.100239.0.0.qITEUW

 

分享到:
评论

相关推荐

    Go-Kubernetes集群的GPU共享调度程序

    标题中的“Go-Kubernetes集群的GPU共享调度程序”是指一种技术解决方案,用于在Kubernetes集群中高效地管理和调度具有Nvidia GPU资源的Pod。这种方案通常涉及到自定义调度器扩展,以便更好地支持GPU共享,从而提升...

    如何落地TensorFlow on Kubernetes

    3. 在Kubernetes上部署TensorFlow的步骤:部署过程通常涉及以下几个步骤:首先是确定部署架构,之后根据架构设计具体实施部署,这包括配置Kubernetes集群资源、使用Kubernetes资源文件定义TensorFlow服务,并部署...

    安装GPU版本的Tensorflow

    使用Ubuntu16.04安装GPU版本的Tensorflow,实测可用,可以供大家学习

    tensorflow_gpu

    tensorflow_gpu版本,为了方便下载,在这里上传一份

    tensorflow-gpu测试代码.py

    tensorflow-gpu测试代码

    tensorflow2.5.0-GPU测试工程

    在这个名为"tensorflow2.5.0-GPU测试工程"的项目中,我们将在Ubuntu 16.04操作系统上编译并测试TensorFlow 2.5.0的GPU版本,利用RTX 2060 Super显卡处理多张图像,以展示其在图像处理任务中的加速能力。 首先,**...

    tensorflow-gpu测试代码

    tensorflow-gpu测试代码,测试成功会输出GPU True

    tensorflow-gpu版本的

    **TensorFlow GPU 版本详解** ...总的来说,TensorFlow GPU版本是为那些希望在Windows系统上进行深度学习研究或应用的开发者设计的,它通过GPU的强大性能提高了训练效率,降低了训练时间,是深度学习领域的重要工具。

    TensorFlow on Kubernetes的架构与实践.docx

    在单机模式下,TensorFlow通过Client提交Session来指定Worker在CPU或GPU上执行的任务。而在分布式环境中,TensorFlow提供两种副本机制:In-graph Replication和Between-graph Replication。In-graph Replication在一...

    44 Kubernetes GPU管理与Device Plugin机制.pdf

    在Kubernetes集群中,GPU管理是一项关键任务,尤其对于运行高性能计算、深度学习和图形密集型应用的工作负载而言。Device Plugin机制是Kubernetes为了有效管理和调度硬件资源,如GPU,而引入的一种扩展机制。本文将...

    44 _ Kubernetes GPU管理与Device Plugin机制1

    Kubernetes作为流行的容器编排系统,自然面临着在集群上运行GPU密集型任务的挑战。为了满足这一需求,Kubernetes引入了GPU管理和Device Plugin机制。 **Device Plugin机制** Device Plugin是Kubernetes提供的一种...

    TensorFlow遇上Kubernetes.pptx

    【TensorFlow遇上Kubernetes】是关于在Kubernetes集群上运行和管理TensorFlow应用程序的一个技术实践。这个主题主要涉及五个部分:架构概述、编程模型、运行模型、训练模型以及TensorFlow与Kubernetes的结合。 **...

    Kubernetes-GPU-指南:本指南应帮助研究人员和业余爱好者使用自己的Kubernetes GPU集群轻松地自动化和加速深度学习

    Kubernetes-GPU-指南:本指南应帮助研究人员和业余爱好者使用自己的Kubernetes GPU集群轻松地自动化和加速深度学习

    cpp-安装GPU加速的tensorflow教程

    在IT领域,尤其是在深度学习和人工智能的实践中,TensorFlow是一个不可或缺的工具。它是一个强大的开源库,用于构建和训练复杂的机器学习模型。然而,对于初学者或者那些想要利用GPU加速的人来说,安装TensorFlow...

    多GPU并行训练 tensorflow demo

    神经网络 深度学习 多GPU并行训练 tensorflow demo MNIST

    tensorflow_gpu2.7.0py版本3.9whl.rar

    在使用TensorFlow GPU版时,需要注意的是,不是所有的机器学习任务都能从GPU加速中受益,有些可能由于计算量较小而更适合在CPU上运行。此外,不同型号的GPU对TensorFlow的支持程度也有所不同,较旧的GPU可能无法支持...

    tensorflow_gpu-1.5-linux_x86_64.whl

    下载并直接安装本地tensorflow-gpu文件,可避免linux服务器上在线安装tf(gpu)因资源问题而导致的安装失败。

    在Linux远程服务器上,通过终端部署Anaconda和TensorFlow 1.13 GPU版本

    在Linux远程服务器上部署Anaconda和TensorFlow 1.13 GPU版本是深度学习和人工智能项目中的常见步骤。Anaconda是一个流行的开源平台,用于管理Python环境和数据科学库,而TensorFlow则是Google开发的一个强大的开源库...

    tensorflow_gpu的各个版本的whl.rar

    - **Tensorflow 1.8 GPU**: 提供了更好的内存管理,支持TensorFlow Serving,便于模型部署,还引入了自动微分功能,简化了梯度计算。 - **Tensorflow 1.9 GPU**: 强化了数据输入流水线,提高了数据预处理速度,...

Global site tag (gtag.js) - Google Analytics