详情页标题前

腾讯云容器服务在 TKE Serverless 上运行深度学习同尘科技

详情页1

操作场景

本系列文章将记录在 TKE Serverless 上部署深度学习的一系列实践,从直接部署 TensorFlow 到后续实现 Kubeflow 的部署,旨在提供一个较完整的容器深度学习实践方案。

前提条件

本文将在上一篇文档 构建深度学习容器镜像 基础上继续操作,利用自建集群,在 TKE Serverless 上运行深度学习任务。自建镜像已上传到镜像仓库中:ccr.ccs.tencentyun.com/carltk/tensorflow-model,无需重新构建,可以直接拉取使用。

操作步骤

创建 TKE Serverless 集群

请参见 创建集群 文档创建 TKE Serverless 集群。 说明由于需要运行 GPU 训练任务,在创建集群时,请注意选择的容器网络所在区的支持资源,选择支持 GPU 的可用区,如下图所示:

腾讯云容器服务在 TKE Serverless 上运行深度学习同尘科技



创建 CFS 文件系统(可选)

容器在任务结束后会自动删除,并释放资源。为了实现对模型和数据的持久化存储,建议通过挂载外部存储的方式进行数据存储。目前支持 云硬盘 CBS、文件存储 CFS、对象存储 COS 等方式。在本文示例中,我们将使用 NFS 盘的方式,利用 CFS 实现多读多写的持久化存储。

创建文件存储

1. 登录 文件存储 CFS 控制台,进入文件系统页面。 2. 单击创建,在新建文件系统页面中,选择文件系统类型,并单击下一步:详细设置。 3.详细设置页面进行相关配置,CFS 类型信息与配置细节可参见 创建文件系统及挂载点 文档。注意文件协议需选择 NFS。创建的 CFS 地域,需确保与集群在同一地域。 4. 确认无误之后单击立即购买并完成付费即可创建文件存储。

获取文件系统挂载信息

1.文件系统页面,单击需获取子目标路径的文件系统 ID,进入该文件系统详情页。 2. 选择挂载点信息页签,从 “Linux下挂载” 获取该文件系统挂载信息。如下图所示:

腾讯云容器服务在 TKE Serverless 上运行深度学习同尘科技

说明在挂载点详细中需要记住 IPv4 地址,IPv4 将作为 NFS 路径,后续配置挂载时需要,例如 10.0.0.161:/

创建训练任务

本文任务以 MNIST 手写数字识别数据集,加两层 CNN 为例,相关示范镜像为上一章 自建镜像,如需自定义镜像,请参见 深度学习容器镜像构建 文档。以下提供两种创建任务的方式。控制台操作指引Kubectl 操作指引由于深度学习任务的性质,本文以部署 Job 节点为例。如何部署 Job 请参见 Job 管理 文档。以下提供控制台的部署范例:1.数据卷(选填)配置项中,选择 NFS 盘,并输入上述步骤创建的 CFS 名称和 IPv4地址。如下图所示:

腾讯云容器服务在 TKE Serverless 上运行深度学习同尘科技


2.实例内容器中的挂载点配置项里,选择数据卷,并配置挂载点。如下图所示:

腾讯云容器服务在 TKE Serverless 上运行深度学习同尘科技


注意因为数据集可能需要联网下载,所以需要配置对集群的外网访问。详情请参见常见问题 公网访问相关。 选择 GPU 型号后,在填写 request 和 limit 时需要为容器分配符合 资源规格 的 CPU 和内存,实际填写并不严格要求精确到个位。在控制台中配置,也可以选择删除默认配置以留空,即为“不限制”,也会有对应的计费规格;更推荐这种做法。 容器运行命令 command 继承 Docker 的 CMD 字段,而 CMD 指令首选 exec 形式,不调用 shell 命令。这意味着不会发生正常的 shell 处理。因此命令需要 shell 形式运行,就需要在前面添加 "sh","-c"。在控制台输入多个命令和参数时,每个命令单独一行(以换行为准)。您还可以使用 YAML 文件创建任务。 1. 准备 YAML 文件,示例 gpu_pod.yaml 如下:

apiVersion: v1kind: Podmetadata:   name: tf-cnn  annotations:     #eks.tke.cloud.tencent.com/cpu: "8"    #eks.tke.cloud.tencent.com/gpu-count: "1"    eks.tke.cloud.tencent.com/gpu-type: T4    #eks.tke.cloud.tencent.com/mem: 32Gispec:   containers:   - name: tf-cnn    image: hkccr.ccs.tencentyun.com/carltk/tensorflow-model:latest # 训练任务的镜像    env:      - name: MODEL_DIR      value: /tf/model    - name: DATA_DIR      value: /tf/data    command:       - "sh"      - "-c"      # 触发训练任务的脚本      - "python3 official/vision/image_classification/mnist_main.py \         --model_dir=$MODEL_DIR \        --data_dir=$DATA_DIR \        --train_epochs=5 \        --distribution_strategy=one_device \        --num_gpus=1 \        --download"    resources:       limits:         #cpu: "8"         #memory: 32Gi        nvidia.com/gpu: "1"       requests:         #cpu: "8"        #memory: 32Gi        nvidia.com/gpu: "1"     volumeMounts:     - name: tf-model-cfs      mountPath: /tf  volumes:    - name: tf-model-cfs   #训练结果持久化,保存到CFS    nfs:        path: /            #此处填写CFS保存的根目录      server: 10.0.1.8   #此处填写之前创建的CFS的IPv4地址  restartPolicy: OnFailure

2. 执行以下命令完成部署。

kubectl create -f [yaml_name]

注意除了控制台操作指引中提到的 注意事项,还需注意:在 YAML 文件中需使用 Annotations 声明资源分配,详情请参见 Annotation 说明。同样需要注意的是不同 GPU 对应不同的 CPU、内存选项,建议按需填写。 此处数据卷使用的是 NFS 。若需使用其他数据卷进行持久化存储,请参见 其他存储卷使用说明。 Annotation 可以只保留eks.tke.cloud.tencent.com/gpu-type不需要其他项。如果写上了 /gpu-count,那么 cpumem 也需要一起写上(本文不推荐加上其他项。不加不会影响实际效果,加了之后未按规格填写可能会报 OOM 错误)。 在 GPU 的调度中,对 nvidia.com/gpu 而言,limits 是必须且仅需填写。如果只写 Annotation ,将出现找不到卡的报错。如果只填 limits ,该值将被作为 request 。如果也写上 request ,二者值必须相等。详情请参见 K8S 文档 调度 GPUs(这里同样不推荐在 request 和 limits 中加上 cpu 和 memory 的设置,理由同上)。

查看运行结果

以下提供控制台和命令行两种方式查看运行结果:控制台查看命令行查看在创建 Job 之后,默认进入 Job 管理页面。您也可以通过以下步骤进入 Job 管理页面:1. 登录容器服务控制台,选择左侧导航栏中的 集群。2. 在集群列表中,单击需要查看的事件集群 ID,进入集群管理页面。 3. 选择工作负载 > Job,在 Job 列表中单击上述步骤创建的 Job。 选择事件页签查看事件,如下图所示:

腾讯云容器服务在 TKE Serverless 上运行深度学习同尘科技

选择日志页签查看日志,如下图所示:

腾讯云容器服务在 TKE Serverless 上运行深度学习同尘科技



腾讯云容器服务在 TKE Serverless 上运行深度学习同尘科技


您可以使用命令查看事件或日志:执行以下命令查看事件:

kubectl describe pod [name]

如下图所示:

腾讯云容器服务在 TKE Serverless 上运行深度学习同尘科技

执行以下命令持续输出日志:

kubectl logs -f [pod_name]

如下图所示:

腾讯云容器服务在 TKE Serverless 上运行深度学习同尘科技


因为 TKE Serverless 即用即消的特性,导致如果需要查看日志,必须当且仅当 Pod 处于 Running 状态时才可查看。解决方法请参见常见问题 日志采集相关。

查看存储

如果已经按照前面的配置 NFS,此时可以前往挂载点,查看 NFS 内存储:1. 执行以下命令进入相关挂载目录,查看是否存在相关目录。

cd /mound_data

如下图所示:

腾讯云容器服务在 TKE Serverless 上运行深度学习同尘科技

2. 进入 model 目录,查看目录下是否有相关数据。如下图所示:

腾讯云容器服务在 TKE Serverless 上运行深度学习同尘科技

3. 进入 data 目录,查看目录下是否有相关数据。如下图所示:

腾讯云容器服务在 TKE Serverless 上运行深度学习同尘科技



相关操作

在 TKE 上使用 GPU 部署深度学习任务

在 TKE 上部署深度学习任务与 TKE Serverless 的部署几乎没有区别。以使用 kubectl 通过 YAML 部署为例,需要进行以下两点改动:创建 TKE 节点时,选择带有 GPU 的节点。详情请参见 新建 GPU 云服务器。 因为节点自带 GPU 资源,因此无需 Annotations 和 Resources。在实践操作中,您可以保留 Annotations,TKE 不会处理这部分。但是,建议注释掉 Resources,因为在某些情况下可能会导致不合理的资源需求。

常见问题

在进行本实践过程中遇到的问题,请参见 常见问题 文档进行排查解决。
容器服务官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/148339.html

(0)
上一篇 2023年12月9日 下午12:54
下一篇 2023年12月9日
详情页2

相关推荐

  • 阿里云日志服务SLS数据采集概述-云淘科技

    日志服务支持采集服务器与应用、开源软件、物联网、移动端、标准协议、阿里云产品等多种来源的数据。本文列举了日志服务所支持的数据来源。 数据来源 日志服务支持的数据来源如下: 类别 来源 接入方式 更多 应用 程序输出 Logtail 查询分析程序日志 访问日志 Logtail 分析Nginx访问日志 链路跟踪 Trace服务 Logtail 无 时序数据 Lo…

    阿里云日志服务SLS 2023年12月10日
  • 腾讯云云点播第三方播放器 Web 插件

    本文档是介绍第三方播放器 Web 插件,它可以帮助腾讯云客户通过灵活的接口,快速实现第三方播放器与云点播能力的结合,实现视频播放功能。本插件支持获取视频基本信息、视频流信息、关键帧与缩略图信息等,支持私有加密,本文档适合有一定 Javascript 语言基础的开发人员阅读。 SDK 集成 第三方播放器 Web 插件提供 CDN 集成和 npm 集成两种集成方…

    腾讯云 2023年12月9日
  • 腾讯云对象存储MySQL 数据备份

    简介 MySQL 数据备份是腾讯云对象存储(Cloud Object Storage,COS)基于 云函数(Serverless Cloud Function,SCF) 为用户提供的数据库备份功能,可以协助用户将 MySQL 云数据库上的备份文件转存至对象存储进行持久化的保存,以防止数据丢失或损坏。当用户在指定存储桶配置了备份函数规则后,云函数会定期扫描您的…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 容器服务ACK高级联系人和联系人组,可以用我们自己的java应用里的api接口来直接触发吗?-云小二-阿里云

    容器服务ACK高级联系人和联系人组,可以用我们自己的java应用里的api接口来直接触发吗?比如调用个接口就主动触发一个告警,然后打电话之类的 以下为热心网友提供的参考意见 您好,容器服务ACK(Aliyun Container Service for Kubernetes)是一个强大的工具,用于您好,容器服务ACK(Aliyun Container Ser…

    阿里云 2023年12月5日
  • 腾讯云内容分发网络CDN源站配置

    配置场景 若您需要修改域名源站基本信息、回源请求协议、回源 HOST等信息,可在源站配置模块进行相关操作。注意 建议您的源站根据加速区域配置相同地域的源站,例如,加速区域为中国境内,请配置为境内源站回源,如果源站位于中国香港或境外,由于回源存在跨境访问,将无法为您保障回源效果。如果您的加速区域为全球加速,可以在域名配置-源站配置中,设立区域独立源站,境内、境…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。