设置指南#

本文档提供了在 Microsoft Azure 上部署 Tokkio Workflow 的全面指南。虽然在 Azure 云环境中实现 Tokkio Workflow 存在多种方法,但本指南侧重于使用 Tokkio 固化的部署脚本的特定部署方法。这些脚本自动化了设置 Tokkio Workflow 及其所需基础设施组件的过程。

先决条件#

Azure 设置#

  • 具有管理员访问权限的 Azure 帐户

  • Azure 服务主体,使自动化部署脚本能够使用其进行身份验证

  • Azure 存储帐户和容器,用于托管自动化部署脚本的状态,以便可以在稍后日期或时间修改或拆除已创建的基础设施

  • 用于托管 Tokkio 应用程序的已注册域名

  • 用于 SSL 支持的 Azure 应用程序证书

有关如何设置此项的说明,请参阅 Azure 文档。您也可以按照环境变量和先决条件设置部分中的说明进行操作。

硬件#

控制器实例#

  • Ubuntu 22.04 操作系统

  • 生成 SSH 密钥对

  • 确保无密码 sudo 访问

访问权限#

  • 访问启动 Tokkio Pipeline 应用程序期间使用的所有工件。例如,NGC 上的 Tokkio 应用程序 Helm chart。

基础设施布局#

Azure 上的 Tokkio Workflow 设置需要创建多个 Azure 资源,例如虚拟机、网络安全组、应用程序网关、用于托管 UI 内容的 FrontDoor CDN 等。下图显示了此部署脚本将要创建的基础设施布局。

Azure Deployment Architecture

安装步骤#

  1. 克隆 NVIDIA/ACE.git 存储库并导航到 azure 部署脚本目录

git clone https://github.com/NVIDIA/ACE.git
cd ACE/workflows/tokkio/scripts/one-click/azure
  1. 准备配置文件,可以通过复制基本 config-template.yml 或复制 config-template-examples 文件夹下的示例配置文件之一。

#list of example templates
config-template-examples/
├── llm-ov-3d-rp-3x-streams
│   ├── config-template.yml
│   └── my-config.env
└── llm-ue-3d-coturn-3x-streams
    ├── config-template.yml
    ├── my-config.env
    └── user-helm-override-values.yml



  Copy a config template of your choice as base config template for this installation.
cp config-template-examples/llm-ov-3d-rp-3x-streams/config-template.yml ./my-config.yml
  1. 使用您的特定设置修改 my-config.yml

vi my-config.yml
  1. 设置环境变量。

  • config-template 文件类似,您可以从 config-template-examples 文件夹复制示例 env 文件

  • 使用您的特定设置修改环境变量文件

cp config-template-examples/llm-ov-3d-rp-3x-streams/my-config.env my-env-file.env
vi my-env-file.env
  1. 加载环境变量文件

source my-env-file.env
  1. 运行安装命令

./envbuild.sh install --component all --config-file ./my-config.yml
  1. 在日志末尾捕获安装结果。输出将如下面的示例所示。

access_urls:
  api_endpoint: "https://<api_sub_domain>.<base_domain>"
  elasticsearch_endpoint: "https://elastic-<name>.<base_domain>"
  grafana_endpoint: "https://grafana-<name>..<base_domain>"
  kibana_endpoint: "https://kibana-<name>..<base_domain>"
  ui_endpoint: "https://<ui_sub_domain>.<base_domain>"
ssh_command:
app:
  bastion: ssh -i /home/my-user/.ssh/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null <username>@<bastion-instance-ip-address>
  master: ssh -i /home/my-user/.ssh/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ProxyCommand="ssh -i /home/my-user/.ssh/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -W %h:%p <username>@<bastion-instance-ip-address>" <username>@<app-instance-ip-address>
turn:
  master: ssh -i /home/my-user/.ssh/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null <username>@<turn-instance-ip-address>
  1. 验证安装

  • 检查 pod 状态:kubectl get pods \-n \<application-namespace\>

  • 等待所有 pod 达到 Ready 状态(可能需要长达 60 分钟)

  • 一旦所有 pod 都处于健康状态,您可以使用安装输出中的 URL access_urls.ui_endpoint 访问 UI

  • 首次,浏览器应提示 UI 运行所需的麦克风、扬声器或摄像头等权限。接受权限后,UI 应加载。

Verify Installation

卸载步骤#

仅卸载应用程序#

  • 加载正确的环境变量文件

source my-env-file.env
  • 运行以下命令以仅卸载应用程序组件

./envbuild.sh uninstall --component app --config-file ./my-config.yml
  • 通过以下命令清除先前安装中的任何 persistent-volumes

kubectl delete pv -n <application-namespace>

卸载整个设置#

  • 加载正确的环境变量文件

source my-env-file.env
  • 运行以下卸载命令

./envbuild.sh uninstall --component all --config-file ./my-config.yml

注意

此步骤将卸载整个 Kubernetes 集群,即在安装步骤中启动的 Azure 基础设施。因此请谨慎使用。

其他注意事项#

成本#

此设置中的许多资源可能不属于 Azure 的免费层。要了解成本影响,您应查阅 Azure 定价计算器和 Azure 成本管理、账单文档。

安全性#

Tokkio 在生产环境中的安全性是部署它的最终用户的责任。在生产环境中部署时,请让安全专家审查任何潜在的风险和威胁;定义信任边界,保护通信渠道,集成 AuthNAuthZ 与适当的访问控制,保持部署(包括容器)为最新,确保容器安全且没有漏洞。

基本技能和背景#

熟悉 Azure CSP#

  • 用户应基本了解 Azure 云解决方案提供商计划,包括其计费模型和可用服务。

  • 熟悉 Azure Resource Manager (ARM) 至关重要,因为 CSP 中的所有服务都基于 ARM 部署模型

  • 用户应了解任何可能影响某些 Azure 服务或优惠部署的 CSP 特定限制或约束

  • 此外,了解用于管理客户订阅、配置服务和处理支持的 CSP 特定工具和门户是有益的,并且将有助于在 Azure CSP 上有效部署和管理 Tokkio

熟悉命令行界面 (CLI)#

  • 基本命令:用户应熟悉基本命令行操作,例如导航目录、执行脚本和管理文件。

  • 环境配置:了解环境变量以及 PATH 设置在 Linux 上的工作方式将极大地帮助操作 OneClick 脚本。

  • 脚本编写基础知识:基本的脚本编写知识(例如,shell 脚本编写)对于了解 OneClick 脚本的运行方式以及排除可能出现的任何问题很有帮助。

熟悉 YAML#

  • YAML 语法和结构:YAML 通常用于云原生应用程序中的配置文件,因为它具有可读性和灵活性。OneClick 脚本中使用的配置模板使用 YAML 格式。用户应熟悉 YAML 语法和结构。

熟悉 Kubernetes 生态系统#

Tokkio 管线是一个云原生应用程序,并使用容器化、Kubernetes、helm 等概念。用户需要熟悉这些概念,才能从使用部署脚本和应用程序中获得最佳结果。

  • Kubernetes 基础知识:用户应基本了解 Kubernetes 核心概念,例如 pod、服务和部署

  • kubectl:熟悉 kubectl 命令行工具,该工具用于与 Kubernetes 集群交互,包括查询正在运行的应用程序 pod 的状态或日志等。

  • Helm:了解 Kubernetes 的 Helm 包管理器,它通过管理 chart(预配置 Kubernetes 资源定义的集合)来简化应用程序部署。以及如何将 helm 与覆盖值一起使用将有助于适当地配置模板。