全部产品
Search
文档中心

容器服务 Kubernetes 版 ACK:配置Arena客户端

更新时间:Dec 04, 2023

Arena是基于Kubernetes的机器学习轻量级解决方案,支持数据准备、模型开发、模型训练和模型预测的完整生命周期,提升数据科学家工作效率。同时和阿里云的基础云服务深度集成,支持GPU共享、CPFS等服务,可以运行阿里云优化的深度学习框架,最大化使用阿里云异构设备的性能和成本的效益。本文介绍如何配置Arena客户端。

前提条件

步骤一:配置Arena客户

  1. 连接集群。

    专有版集群

    用SSH方式登录专有版集群的管理节点,然后执行arena命令。具体操作,请参见通过SSH连接ACK专有集群的Master节点

    托管版集群

    因为托管版集群无Master节点,所以您需要将Arena客户端安装在您的本地计算机上(例如:个人Mac)。具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群

    说明

    您可以通过执行命令kubectl get nodes判断KubeConfig文件是否正确配置。

  2. 配置Arena客户端。

    1. 下载Arena客户端。

    2. 解压安装包。

      Linux

      tar -xvf arena-installer-0.9.11-ce87d10-linux-amd64.tar.gz

      Mac

      tar -xvf arena-installer-0.9.11-ce87d10-darwin-amd64.tar.gz
    3. 安装Arena。

      cd arena-installer
      bash install.sh --only-binary
  3. (可选)安装自动补全软件。安装自动补全软件支持命令参数自动提示功能,帮助您避免记忆命令行。安装完成后,在命令行终端通过Tab键即可自动补全命令。

    1. 安装补全软件。

      CentOS或Linux

      sudo yum install bash-completion -y

      Debian或Ubuntu

      sudo apt-get install bash-completion

      macOS

      brew install bash-completion@2
    2. 在profile文件中增加自动补全功能。

      Linux

      echo "source <(arena completion bash)" >> ~/.bashrc
      chmod u+x ~/.bashrc

      macOS

      echo "source $(brew --prefix)/etc/profile.d/bash_completion.sh" >> ~/.bashrc

步骤二:验证Arena

您可以执行以下步骤验证Arena是否正常工作。

  1. 执行以下命令检查集群的可用GPU资源。

    arena top node

    看到输出为节点和GPU卡的信息,代表输出正确。

    NAME                        IPADDRESS      ROLE    STATUS  GPU(Total)  GPU(Allocated)
    cn-huhehaote.192.168.X.XXX  192.168.0.117  <none>  ready   8           0
    cn-huhehaote.192.168.X.XXX  192.168.0.118  <none>  ready   8           0
    cn-huhehaote.192.168.X.XXX  192.168.0.119  <none>  ready   8           0
    cn-huhehaote.192.169.X.XXX  192.168.0.120  <none>  ready   8           0
    -----------------------------------------------------------------------------------------
    Allocated/Total GPUs In Cluster:
    0/32 (0%)
  2. 通过arena提交一个训练作业,看到任务被成功提交。

    arena submit tf \
          --name=firstjob \
          --gpus=1 \
          --image=registry.cn-hangzhou.aliyuncs.com/tensorflow-samples/tf-mnist-standalone:gpu \
          "python /app/main.py"

    预期输出:

    configmap/firstjob-tfjob created
    configmap/firstjob-tfjob labeled
    tfjob.kubeflow.org/firstjob created
    INFO[0001] The Job firstjob has been submitted successfully
    INFO[0001] You can run `arena get firstjob --type tfjob` to check the job status
  3. 执行以下命令列出所有作业。

    arena list

    预期输出:

    NAME      STATUS   TRAINER  AGE  NODE
    firstjob  RUNNING  TFJOB    5s   192.168.X.XXX
  4. 执行以下命令查看提交作业的状态。

    arena get firstjob

    预期输出:

    STATUS: SUCCEEDED
    NAMESPACE: default
    PRIORITY: N/A
    TRAINING DURATION: 52s
    NAME      STATUS     TRAINER  AGE  INSTANCE          NODE
    firstjob  SUCCEEDED  TFJOB    14m  firstjob-chief-0  192.168.X.XXX
  5. 执行以下命令查看作业日志。

    arena logs --tail=10 firstjob

    预期输出:

    Accuracy at step 910: 0.9694
    Accuracy at step 920: 0.9687
    Accuracy at step 930: 0.9676
    Accuracy at step 940: 0.9678
    Accuracy at step 950: 0.9704
    Accuracy at step 960: 0.9692
    Accuracy at step 970: 0.9721
    Accuracy at step 980: 0.9696
    Accuracy at step 990: 0.9675
    Adding run metadata for 999