- 发行说明
- 要求
- 安装
- 入门指南
- 项目
- 数据集
- ML 包
- 管道
- ML 技能
- ML 日志
- AI Fabric 中的 Document Understanding
- 基本故障排除指南
1. 配置 Azure AKS 集群
本节详细介绍了配置 AKS 集群以在高可用性多节点配置中运行 AI Fabric 时需要执行的步骤。
- 当前在全新的专用 AKS 集群上支持 AI Fabric 安装。具有未知策略/限制的共享集群可能需要其他解决方法,并且不受官方支持。
- 如果 AI Fabric 使用率很高,并且需要水平扩展以支持组织中的各种 AI/ML 用例
- 您需要跨多个区域部署的高可用性解决方案
- 核心服务和 ML 服务都需要多个副本,以实现灾难恢复和扩展目的
- 由 Azure 管理的高可用性 Kubernetes 集群
- 由 Azure 管理的高可用性容器注册表
- 由 Azure 管理的高可用性云存储
- Horizontal Pod Autoscaler,即根据工作负载调整核心服务的 Pod 数量
- Kubernetes Cluster Autoscaler,即根据对 CPU 和 GPU 节点池的需求自动增加 AKS 集群中的节点数
- 占用 GPU,以确保 GPU 资源用于预期目的
- 证书通过证书管理器进行配置和管理
- 具有至少 2 个节点池的 AKS 集群。至少 1 个具有 GPU 类型节点和适当污点的节点池。
- 与集群位于同一个资源组中的 Azure 容器注册表
- 与集群位于同一个资源组中的 1 个存储帐户
- 与集群位于同一个资源组中的 1 个 Application Insights 实例
- 已创建数据库的 SQL Server
本节将简要概述这些步骤,接下来的两节将详细介绍该过程。
- 用户创建 AKS 集群、Azure 容器注册表、1 个存储帐户和 1 个 Application Insights 实例。
-
oneinstaller 将接受以下内容作为输入:
AKS Cluster name AKS Cluster Resource Group AKS Worker Resource Group ACR Endpoint ACR Name (Username) ACR Password Storage Account Name Storage Account Key Application Insights Key Flag to indicate whether to expose kotsadm service or not DNS Prefix Name for aifabric
AKS Cluster name AKS Cluster Resource Group AKS Worker Resource Group ACR Endpoint ACR Name (Username) ACR Password Storage Account Name Storage Account Key Application Insights Key Flag to indicate whether to expose kotsadm service or not DNS Prefix Name for aifabric - 然后客户登录到 shell.azure.com,设置正确的订阅 ID - 使用“az account set --subscription”
- Shell 应已安装 kubectl。
- 然后将 one-installer 捆绑包复制到 Shell 中,解压缩该捆绑包并运行 bash setup.sh,上面的值可以通过命令行传递,或者,如果不在命令行中传递,安装程序会再次要求提供这些值。
- 在平台输入中输入“azure”。之后将配置其他所有资源。
如果您已经安装 AKS 集群,请跳过此步骤。Kubernetes 版本应为 1.16、1.17、或 1.18。当前不支持其他版本。
- 在 Azure 中创建资源组时,您在资源组级别应该具有所有者角色。
- 在门户中搜索“Kubernetes 服务”,并创建一个新的 AKS 实例。
- 选择您在步骤 1a 中创建的资源组,并提供合适的集群名称。
- 确保您的 Kubernetes 版本为 1.16、1.17、或 1.18。
- 选择 Worker 节点的大小(建议最小为 Standard_D2_v3,包含 3 个节点)
- 在“身份验证”选项卡下:
- 在“身份验证方法”中,选择“系统分配的托管标识”
- 在“网络”选项卡:
- 为“网络配置”选择“Azure CNI”
- 为“网络策略”选择“Azure”
- 保持其他字段相同。
- 在“集成”选项卡下:
- 如果同一资源组中有容器注册表,请将其选中,这将用于推送在运行时构建的 Docker 映像。
- 或者,选择“新建”> 提供合适的注册表名称 > 为“管理员用户”选择“启用”
- 在“标签”选项卡下,根据需要提供合适的标签。
- 单击“审核并创建”,然后创建集群。
AI Center 要求在集群中创建至少 2 个节点池,其中 1 个节点池已在创建集群时创建,您还必须创建另一个节点池。这两个节点池中有 1 个必须是附加了 GPU 的节点。我们通过在节点池上使用污点来识别此类节点池是否存在。
我们检查此污点 nvidia.com/gpu=present:NoSchedule
要创建具有此污点的节点池,可以使用以下命令(示例)
az aks nodepool add --name gpunodepool \)\)
--enable-cluster-autoscaler \)\)
--resource-group ${RESOURCEGROUP} \)\)
--cluster-name ${AKSCLUSTERNAME} \)\)
--node-vm-size Standard_NC6 \)\)
--node-taints nvidia.com/gpu=present:NoSchedule \)\)
--labels accelerator=nvidia \)\)
--node-count 0 \)\)
--min-count 0 \)\)
--max-count 3
az aks nodepool add --name gpunodepool \)\)
--enable-cluster-autoscaler \)\)
--resource-group ${RESOURCEGROUP} \)\)
--cluster-name ${AKSCLUSTERNAME} \)\)
--node-vm-size Standard_NC6 \)\)
--node-taints nvidia.com/gpu=present:NoSchedule \)\)
--labels accelerator=nvidia \)\)
--node-count 0 \)\)
--min-count 0 \)\)
--max-count 3
--node-vm-size您可以根据要用于 GPU 的节点类型作出更改。有关 Azure 中支持的 GPU 虚拟机大小,请查看此处。
在部署集群的同一个资源组中创建一个存储帐户。我们将使用此存储帐户创建容器,用于存储 AI Fabric 相关文件
- 在门户中搜索存储帐户
- 创建新的存储帐户。
- 选择上述资源组
- 为存储帐户提供合适的名称
- 将其余设置保留为默认值。添加标签并创建帐户。
如果您的 AKS 集群为私有,请参见此处详细介绍的附加步骤。
设置上述基础架构后,打开 shell.azure.com,使用以下命令将当前订阅设置为资源组所在的订阅:
az account set --subscription <subscription-id>
az extension add --name application-insights
az account set --subscription <subscription-id>
az extension add --name application-insights
第一步是在此处下载安装程序 zip 文件,然后将其移动到 AI Center 服务器。或者,也可以使用以下命令直接从计算机下载该文件
wget https://download.uipath.com/aifabric/online-installer/v2020.10.2/aifabric-installer-v20.10.2.tar.gz
wget https://download.uipath.com/aifabric/online-installer/v2020.10.2/aifabric-installer-v20.10.2.tar.gz
然后解压缩文件,并使用以下命令进入主文件夹:
tar -xvf aifabric-installer-v20.10.2.tar.gz
cd ./aifabric-installer-v20.10.2
tar -xvf aifabric-installer-v20.10.2.tar.gz
cd ./aifabric-installer-v20.10.2
然后,使用以下命令运行 setup.sh:
bash setup.sh --resourceGroup <YOUR RESOURCE GROUP> --clusterName <YOUR CLUSTER NAME> --exposeKots n --acrHost <YOUR CONTAINER REGISTRY> --acrUser <YOUR CR USERNAME> --acrKey <YOUR CR KEY> --workerResourcegroup <YOUR WORKER RG> --dnsPrefix aicapp --storageAccountName <YOUR STORAGE ACCOUNT> --storageAccountAccessKey <YOUR STORAGE ACCOUNT ACCESS KEY> --appInsightsKey <YOUR ACCESS KEY> --platform azure --email <YOUR EMAIL>
bash setup.sh --resourceGroup <YOUR RESOURCE GROUP> --clusterName <YOUR CLUSTER NAME> --exposeKots n --acrHost <YOUR CONTAINER REGISTRY> --acrUser <YOUR CR USERNAME> --acrKey <YOUR CR KEY> --workerResourcegroup <YOUR WORKER RG> --dnsPrefix aicapp --storageAccountName <YOUR STORAGE ACCOUNT> --storageAccountAccessKey <YOUR STORAGE ACCOUNT ACCESS KEY> --appInsightsKey <YOUR ACCESS KEY> --platform azure --email <YOUR EMAIL>
请根据您的设置替换相应的值,如下所述。
上述命令中的参数如下所示(如果未在命令中传递,安装程序将再次要求提供这些参数):
platform → azure
resourceGroup → 我们在其中创建集群及其他资源的资源组
workerResourcegroup → AKS 将创建另一个资源组,与您的集群一起维护集群工作负载,请提供相应名称。在门户中使用原始资源组名称进行搜索,您还将获得另一个 RG 名称,通常此名称类似于 MC_<rg-name><cluster-name><region>
clusterName → AKS 集群名称
exposeKots → 是否通过互联网公开 Kotsadmin。(y/n)
acrHost → 转到在 AKS 中选择的容器注册表,并获取服务器名称,如下所示
acrUser → 这是已创建的注册表的名称。
acrKey → 转到 ACR 页面上的“访问密钥”,并从中提供任意一个密码
dnsPrefix → 要用于 AI Fabric 入口的 DNS 前缀(例如 aicenter、aim-app 或任何其他前缀)
storageAccountName → 在步骤 3 中在同一个资源组中创建的存储帐户的名称
storageAccountAccessKey → 转到存储帐户页面 →“访问密钥”。单击“显示密钥”,然后复制密钥 1 或密钥 2 中的任意一个密钥并传递。
appInsightsKey → 已创建的资源的 Application Insights 密钥。(请参见以下屏幕截图中的“检测密钥”)
email → 用于通知证书过期详细信息的电子邮件 ID
首次安装时可能会由于发生“找不到 Application Insights”错误而失败,重新运行安装应该能通过,或者也可以使用以下命令来安装 az 扩展程序并重新运行安装:
az extension add --name application-insights
如果您的 AKS 集群为私有,则与上述安装过程有些不同。
- 在与 AKS 集群相同的网络中创建 1 个 Ubuntu 虚拟机
- 在其中安装 kubectl、az、helm 和 jq 命令行工具。
- 将有一个 Azure 客户端与您的 AKS 集群同名,向相关人员询问集群的 vnet,然后在访问策略下将此客户端添加为参与者(创建私有负载均衡器时需要执行此操作)
- 登录到 Azure,然后设置与 AKS 集群相同的正确订阅 ID
az login az account set --subscription <subscription-id>
az login az account set --subscription <subscription-id> - 在 bash setup.sh 命令中,您必须传递另一个参数,--isPrivate y
- Istio 和 KotsAdmin 将通过私有负载均衡器 IP 地址公开。
- 在这种情况下,Expose_kots 标志将被忽略,并且将为 kotsadmin 服务分配一个内部负载均衡器
- 由于私有 IP 地址不能具有公共 DNS 名称,因此我们为 Istio 创建自签名证书。
- 在 Kotsadmin 页面上,入口主机将是 oneinstaller 输出中的 Istio 私有 IP。您可以在任何时候通过运行以下命令并获取外部 IP 地址来进行检查:
kubectl -n istio-system get svc istio-ingressgateway
kubectl -n istio-system get svc istio-ingressgateway - 只要 AKS VNET 可访问,您就可以使用私有网络通过 https://<istio-private-ip>/ai-app 使用 AI Fabric。
- 如果要在互联网上公开此地址,您必须将流量从公共网关重定向到端口 443 上的此内部 IP。
- 创建公共网关
- 配置网关以将流量从 443 端口发送到 <istio-private-ip>:443
- 在 Kotsadmin 中,将网关的公共 IP 或指向此网关的 DNS 条目用作入口主机
- 网关配置需要使用 TLS 证书详细信息来连接到后端服务器。如果要更新自己的 AI Fabric 证书,可以从 kotsadmin 将其上传
- 此外,如果您的网关需要运行状况检查,可以使用 /ai-deployer/actuator/health URL。
- 创建链接到与 AKS 相同的 vnet 或与 AKS vnet 对等互连的某个 vnet 的 Azure 应用程序网关实例
- 创建一个具有 Istio 负载均衡器私有 IP 的后端池条目
- 创建具有端口 443 的 https 设置条目,如果要使用自签名证书,请按照文档 https://docs.microsoft.com/en-us/azure/application-gateway/self-signed-certificates 中所述创建自签名证书颁发机构和服务器证书(生成服务器证书时,在“通用名称”字段下输入“Istio LB”),并在“主机名”设置下选择“使用特定域名覆盖”,然后输入 Istio LB 的 IP
- 在“受信任的根证书”字段中上传 CA 证书。
- 在 kotsadmin 中上传上面创建的服务器证书,使用网关的公共 IP 并从 kotsadmin 触发部署。
- 根据上面创建的服务器证书和密钥生成 pfx 文件,例如
-openssl pkcs12 -export -out contoso.pfx -inkey fabrikam.key -in fabrikam.crt
。 - 在网关中创建一个具有端口 443 的侦听器条目,并将该 pfx 文件上传到其中。
- 在网关中创建一个规则,并选择上述侦听器、http 设置和后端目标。
- 创建一个使用 https 的运行状况探测器条目,并输入主机名为 Istio 负载均衡器的 IP 地址。 输入此 /ai-deployer/actuator/health 作为路径,并选择在步骤 3 中创建的上述 http 设置。
要求 | 注意 |
---|---|
具有所有者访问权限的 Azure 资源组 | |
确保您在创建资源组的区域中有足够的 vCPU 可用 | 可用 vCPU 的最小数量应为 16。运行以下命令,查看托管资源组的区域中可用的 vCPU 数量:az vm list-skus --location westeurope --output table | grep virtualMachines 。
|
确保您在创建资源组的区域中拥有合适的计算机类型 | 默认情况下,这些计算机为 Standard_D8s_v3 & Standard_NC6 。运行以下命令,查看托管资源组的区域中可用的 vCPU 数量: az vm list-skus --location westeurope --output table | grep virtualMachines 。
|
确保添加强制性标签 | 请确认您是否知道在公司的 Azure 订阅下配置时是否需要使用强制性标签来标记资源。 |
下载基础架构配置脚本
从 UiPath ai-customer-scripts 存储库(即 https://github.com/UiPath/ai-customer-scripts/blob/master/platform/aks/aks-arm.zip)下载 aks-arm.zip 文件夹
要求 | 注意 |
---|---|
正常工作的 Orchestrator 20.10 安装 | 请参见此处 |
SQL Server 2008 R2 或更高版本 | 请参见此处 |
必须启用 SQL Server 身份验证 | 请联系 SQL Server 管理员。 |
用于创建数据库和角色的 SQL 凭据。 | 请联系 SQL Server 管理员。 |
拥有兼容的浏览器 | 参考 |
启动磁盘至少需要具有 200GB 可用空间 | 请参见此处 |
在工作器节点上,总计具有至少 500GB 可用空间的辅助磁盘必须未格式化 | 请参见此处 |
从 AI Fabric 主节点连接到 Orchestrator。必须能够通过域名进行连接。 | telnet <Orchestrator-Domain-Name>
<port> 来自 AI Fabric UCP 节点的应用程序必须正常工作。
|
从 AI Fabric 主节点连接到数据库。 | telnet <SQL-Server-IP>
<port> 来自 AI Fabric UCP 节点的应用程序必须正常工作。
|
从 Robot/Studio 计算机连接到 AI Fabric 主节点。 | telnet <UCP-Host-IP> 33443 和来自机器人/Studio计算机的telnet <UCP-Host-IP> 33390 必须正常工作。 也就是说,robot/studio 计算机将成为服务器的客户端,其端口为 33443 和 33390。
|
从 AI Fabric 计算机连接到安装程序所需的端点。 | AI Fabric 计算机不得阻止对这些端点的出站访问 |
来自受信任的证书颁发机构的域证书(用于 AI Fabric 计算机)。 | 请参见此处 |
AI Fabric 许可证文件。 | 请参见此处 |