TAO v5.5.0

设置

TAO API 服务可以运行在任何 Kubernetes 平台上。本节介绍如何在以下平台设置 TAO API 服务:裸机服务器、AWS (亚马逊网络服务) EKS 和 Azure AKS。

硬件

最低要求

1 个或多个 GPU 节点,其中给定节点内的所有 GPU 必须匹配。

  • 32 GB 系统内存

  • 32 GB GPU 内存

  • 8 核 CPU

  • 1 个 NVIDIA 独立 GPU:Volta、Turing、Ampere、Hopper 架构

  • 16 GB SSD 空间

软件

操作系统支持

  • Ubuntu 22.04(全新安装)

部署步骤

  1. 使用 NGC CLI 下载必要的软件。

    复制
    已复制!
                

    ngc registry resource download-version "nvidia/tao/tao-getting-started:5.5.0"


  2. 更改当前目录

    复制
    已复制!
                

    cd tao-getting-started_v5.5.0/setup/quickstart_api_bare_metal


  3. 设置代理和自定义 CA 证书。

  4. 如果适用,请确保您的部署机器已设置互联网访问。

  1. 确保正确设置以下环境变量

  • HTTP_PROXY, HTTPS_PROXY

  • http_proxy, HTTPS_PROXY

  • NO_PROXY

  1. 如果您使用自定义 CA SSL 证书,则需要将证书捆绑包复制到本地

    复制
    已复制!
                

    cp <path>/<certificat bundle file>.crt ./my-cert.crt

    远程节点用户必须具有 sudo 权限。

  2. 在每个节点上执行以下操作(以下示例假设为 Ubuntu 用户)

    复制
    已复制!
                

    sudo echo "ubuntu ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

  3. 将内容添加到您的清单。

    复制
    已复制!
                

    vi hosts

  4. 使用密码 (`ansible_ssh_pass) 或 SSH 私钥文件 (ansible_ssh_private_key_file) 进行身份验证。

    1. 以下是使用用户名/密码凭据的示例。

      复制
      已复制!
                  

      [master] 127.0.0.2 ansible_ssh_user='ubuntu' ansible_ssh_pass='password' ansible_ssh_extra_args='-o StrictHostKeyChecking=no' [nodes] 127.0.0.2 ansible_ssh_user='ubuntu' ansible_ssh_pass='password' ansible_ssh_extra_args='-o StrictHostKeyChecking=no'

  1. 以下是使用 SSH 密钥的示例。您可以使用 ssh-keygen 生成本地 SSH 密钥,然后使用 ssh-copy-id 将您的公钥填充到远程节点。

复制
已复制!
            

[master] 1.1.1.1 ansible_ssh_user='ubuntu' ansible_ssh_private_key_file='/home/user/.ssh/id_rsa' [nodes] 1.1.1.2 ansible_ssh_user='ubuntu' ansible_ssh_private_key_file='/home/user/.ssh/id_rsa'


  1. 使用以下命令验证远程节点的 SSH 凭据。正确的响应应为 “root”。

    复制
    已复制!
                

    ssh ubuntu@127.0.0.2 'sudo whoami'

  2. 设置您的部署参数,例如 chart 版本、NGC 凭据等。

    复制
    已复制!
                

    vi deploy.yml

    以下是一个示例。

    复制
    已复制!
                

    ngc_api_key: YzZtczM5amdtdDcwNjk... ngc_email: johndoe@mycorp.com chart: https://helm.ngc.nvidia.com/nvidia/tao/charts/tao-api-5.5.0.tgz chart_values: ./tao-toolkit-api-helm-values.yml cluster_name: tao-api-demo

  3. (可选)您可以添加任何您想要在安装 API chart 时覆盖的值。这是一种不常见的用例。

    复制
    已复制!
                

    vi tao-toolkit-api-helm-values.yml

  4. 继续部署。

    复制
    已复制!
                

    bash setup.sh install

如果您需要从机器上完全删除已安装的 Kubernetes 服务,可以使用以下命令。

复制
已复制!
            

bash setup.sh uninstall

先决条件

步骤 1:AWS 账户

如果您的组织拥有可用于托管 TAO API 服务的 AWS (亚马逊网络服务) 账户,请联系您的 AWS 账户管理员以执行后续步骤。

如果您没有 AWS 账户,您可以自行创建一个

要完成以下步骤,请以 AWS 账户根用户或具有管理员权限的用户身份登录到 AWS Web 控制台。

步骤 2:IAM 用户

按照以下步骤创建 AWS IAM 用户、组 并附加策略,以实现 TAO API 的自动部署。

  1. 登录到 AWS Web 控制台后,搜索并选择 “IAM” 服务。

    eks-image001.png

  2. 在左侧面板中选择 用户,然后单击 添加用户

    eks-image003.png

  3. 添加用户 向导中,提供适当的 用户名,并为 AWS 凭证类型 选择 访问密钥 - 编程访问

    eks-image005.png

  4. 导航到 下一步:权限 > 下一步:标签 > 下一步:审核,然后单击 创建用户

    eks-image007.png

  5. 单击 下载 按钮以下载访问密钥为 .csv 文件,以便在使用一键式脚本设置 TAO API 时使用。

    注意

    离开此屏幕后,您将 无法 再次下载相同的凭据。

    eks-image009.png

  6. 在左侧面板中选择 用户组,然后单击 创建组

    eks-image011.png

  7. 创建用户组 向导中,提供适当的名称。

    eks-image013.png

  8. 将用户添加到组 - 可选 部分,搜索并选择在上一步中创建的用户。

    eks-image015.png

  9. 附加权限策略 - 可选 部分,搜索并选择 “AdministratorAccess” 策略。然后单击 创建组

    eks-image017.png

步骤 3:S3 存储桶

按照以下步骤创建 S3 存储桶以存储状态。

  1. 搜索并选择 “S3” 服务。

    eks-image019.png

  2. 在左侧面板中选择 存储桶,然后单击 创建存储桶

    eks-image021.png

  3. 创建存储桶 向导中,为存储桶提供适当的名称,并选择离您最近的区域。

    eks-image023.png

  4. 确保禁用 ACL,并阻止所有公有访问。

    eks-image025.png

  5. 启用 存储桶版本控制 和使用 Amazon S3 托管密钥服务器端加密,然后单击 创建存储桶

    eks-image027.png

部署

步骤 1:下载资源

使用 NGC CLI 下载资源。

复制
已复制!
            

ngc registry resource download-version "nvidia/tao/tao-getting-started:5.5.0"

步骤 2:更改目录

更改当前目录。

复制
已复制!
            

cd tao-getting-started_v5.5.0/setup/quickstart_api_aws_eks

步骤 3:可选 API 参数

(可选)添加任何您想要在安装 API chart 时覆盖的值。

复制
已复制!
            

vi tao-toolkit-api-helm-values.yml

步骤 4:部署

继续部署。

复制
已复制!
            

bash setup.sh install

系统会要求您输入以下参数

  • 您从 AWS 控制台手动创建的 S3 存储桶名称(例如,automation-for-tao-api)

  • S3 存储桶区域(例如,us-west-1)

  • 您选择的集群名称(例如,automation-for-tao-api)

  • 您选择的 AWS 区域(例如,us-west-1)

  • 您选择的 VPC CIDR(例如,10.0.0.0/16)

  • 您的 SSH 公钥路径(例如,~/.ssh/id_rsa.pub 或从 ssh-keygen 命令生成)

  • 您的 NGC API 密钥

  • 您的 NGC 账户电子邮件地址

  • K8s 集群版本(默认为 1.23)

  • AWS 实例类型(默认为 g4dn.12xlarge)

  • 此类型的实例数量(默认为 1)

  • TAO API Helm chart 的 URL(默认为最新)

  • Helm values 文件,用于覆盖 TAO API Helm chart 的任何值(例如,tao-toolkit-api-helm-values.yml)

  • AWS 访问密钥 ID(来自先决条件部分)

先决条件

步骤 1:创建 Azure 订阅

如果您所属的组织拥有符合您用途的 Azure 订阅,请联系相应的管理员以执行后续步骤。

如果您是个人用户且没有 Azure 订阅,您可以通过以下链接自行创建一个: https://learn.microsoft.com/en-us/training/modules/create-an-azure-account/

步骤 2:以管理员身份登录

登录到 Azure Web 控制台后,搜索名为 应用注册 的服务以选择 应用注册 服务。

aks-image001.png

在服务页面中单击 + 新注册 以创建新的应用注册。

aks-image002.png

在 新注册 向导中,提供适当的 名称 ,然后单击 注册

aks-image003.png

在应用注册页面中,记下 应用程序(客户端)ID 和 目录(租户)ID

稍后运行自动化一键式部署脚本时将需要这些信息。

aks-image004.png

在应用注册页面中,选择 证书和机密 子菜单,然后单击 + 新客户端机密

aks-image005.png

在向导中,提供描述,然后单击 添加

aks-image006.png

> :warning: 记下 。退出屏幕后,此值将不可见。将来在自动化一键式部署脚本中使用时将需要此值。

搜索名为 订阅 的服务以选择 订阅 服务。

aks-image007.png

选择您要在其中创建基础设施的订阅。

在订阅页面中,记下 订阅 ID

稍后运行自动化一键式部署脚本时将需要此信息。

aks-image008.png

在订阅页面中,选择 访问控制 (IAM) 子菜单,单击 + 添加 ,然后单击 添加角色分配

aks-image009.png

在角色分配向导的 角色 选项卡中,选择 参与者 角色。

aks-image010.png

在角色分配向导的 成员 选项卡中,为 用户、组或服务主体 分配访问权限,然后单击 + 选择成员

在 选择成员 向导中,搜索先前创建的应用注册的名称,然后单击 选择

单击 查看 + 分配

aks-image011.png

步骤 3:创建 Azure 存储帐户和容器以存储状态

搜索名为 资源组 的服务,然后选择 资源组 服务。

aks-image012.png

在服务页面中选择 + 创建 以创建新的资源组。

aks-image013.png

在 创建资源组 页面中,选择订阅,为资源组提供适当的名称,然后选择默认创建资源的区域。

单击 查看 + 创建

aks-image014.png

搜索名为 存储帐户 的服务,然后选择 存储帐户 服务。

aks-image015.png

在服务页面中选择 + 创建 以创建新的存储帐户。

aks-image016.png

在 创建存储帐户 页面中,选择订阅、资源组,为存储帐户提供适当的名称。

选择默认创建资源的区域。为性能和冗余提供可接受的值

单击 查看 ,然后单击 创建

aks-image017.png

在已创建的存储帐户的 容器 子菜单中,单击 + 容器 以创建新容器。

在 新建容器 向导中,为容器提供适当的名称,为公有访问级别选择 私有 ,然后单击 创建

aks-image018.png

部署

步骤 1:下载资源

使用 NGC CLI 下载资源。

复制
已复制!
            

ngc registry resource download-version "nvidia/tao/tao-getting-started:5.5.0"

步骤 2:更改当前目录

更改当前目录。

复制
已复制!
            

cd tao-getting-started_v5.5.0/setup/quickstart_api_azure_aks

步骤 3:可选 API 参数

(可选)添加任何您想要在安装 API chart 时覆盖的值。

复制
已复制!
            

vi tao-toolkit-api-helm-values.yml

步骤 4:部署

继续部署。

复制
已复制!
            

bash setup.sh install

先决条件

步骤 1:创建 GCP 项目

如果您所属的组织拥有符合您用途的 GCP 项目,请联系相应的管理员以执行后续步骤。

如果您是个人用户且没有 GCP 项目,您可以通过以下链接自行创建一个: https://cloud.google.com/resource-manager/docs/creating-managing-projects

步骤 2:以管理员身份登录

以具有管理员权限的用户身份登录到 GCP Web 控制台,以完成后续步骤。

步骤 3:创建具有访问密钥的 GCP 服务帐户,以实现 TAO API 的自动部署

登录到 GCP Web 控制台后,搜索名为 服务账号 的服务以选择 服务账号 服务。

gks-image001.png

在服务页面中单击 + 创建服务账号 以创建新的服务帐户。

gks-image002.png

在 创建服务账号 向导中,提供适当的 服务账号名称 ,然后单击 创建并继续

gks-image003.png

为项目添加 所有者 角色,然后单击 完成

gks-image004.png

单击已创建的服务帐户。

gks-image005.png

在服务帐户页面的 密钥 选项卡下,单击 添加密钥 下拉列表,然后单击 创建新密钥

gks-image006.png

在向导中,选择 JSON ,然后单击 创建

gks-image007.png

> :warning: 记下密钥的下载路径,并将其移动到安全位置。将来您将需要此密钥。

步骤 4:创建 GCS 存储桶以存储状态

搜索服务名称 存储桶 ,然后选择 存储桶 服务。

gks-image008.png

在服务页面中单击 + 创建 以创建新的存储桶。

gks-image009.png

在 创建存储桶 向导中,为存储桶提供适当的名称,然后选择离您最近的位置。单击 创建

gks-image010.png

单击 确认 以确保存储桶不是公开可访问的。

gks-image011.png

部署

步骤 1:下载资源

使用 NGC CLI 下载资源。

复制
已复制!
            

ngc registry resource download-version "nvidia/tao/tao-getting-started:5.5.0"

步骤 2:更改目录

更改当前目录。

复制
已复制!
            

cd tao-getting-started_v5.5.0/setup/quickstart_api_gcp_gks

步骤 3:可选 API 参数

(可选)添加任何您想要在安装 API chart 时覆盖的值。

复制
已复制!
            

vi tao-toolkit-api-helm-values.yml

步骤 4:部署

继续部署。

复制
已复制!
            

bash setup.sh install

上一页 概述
下一页 部署
© 版权所有 2024, NVIDIA。 上次更新时间:2024 年 10 月 15 日。