- 入门指南
- 网络要求
- 单节点要求和安装
- 多节点要求和安装
- 安装后
- 配置 GPU
- 使用配置文件
- 关于配置文件
- 节点调度
- 迁移和升级
- 基本故障排除指南
AI Center 安装指南
关于配置文件
cluster_config.json
文件定义应用于 UiPath 服务的参数、设置和首选项。如果要更改默认值并为集群使用任何高级配置,则需要更新此文件。
cluster_config.json
,您可以使用以下任一方法:
- a 通过 SSH 直接在 Linux 计算机上使用 Linux 文本编辑器,例如 vi 或 GNU nano(例如,命令:
vi cluster_config.json
); - 使用您喜欢的文本编辑器,然后将文件复制粘贴到计算机上。
cluster_config.json
文件启用或禁用服务,请对 enabled
标志使用 true
或false
。
必填参数 | 描述 |
---|---|
fqdn | 负载均衡器(多节点)或计算机(单节点)域名。 |
fixed_rke_address | 用于对节点注册和 kube API 请求进行负载均衡的固定地址。 如果按照建议配置负载均衡器,则此字段应为 fqdn。 否则为第一个服务器节点的 FQDN。 请参阅配置负载均衡器。
可以是设置中第一个 rke2 服务器的 IP/FQDN。 |
multinode | 如果要进行多节点安装,请设置为 true
|
admin_username | 您要为主机组织设置为 admin 的用户名(例如:admin)。 |
admin_password | 要设置的主机租户管理员密码。 |
rke_token | 在此处使用新生成的 GUID。这是一个预共享的、特定于集群的密码。加入集群的所有节点都需要它。 |
profile | 设置安装的配置文件。可用的配置文件包括:
|
gpu_support | true 或false - 启用或禁用集群的 GPU 支持。
如果您有带 GPU 的代理节点,请设置为“true”。默认情况下,它设置为“false” |
infra.docker_registry.username | 您要为 Docker 注册表安装设置的用户名。 |
infra.docker_registry.password | 您要为 Docker 注册表安装设置的密码。 |
可选参数 | 描述 |
---|---|
telemetry_optout | true 或false - 用于选择不将遥测数据发送回 UiPath。 默认情况下,它设置为false 。
如果您希望选择退出,请设置为
true 。
|
AI Center 参数 | 描述 |
---|---|
sql_connection_str | SQL 连接名称。 |
orchestrator_url | Orchestrator URL 地址。 |
identity_server_url | Identity Server URL 地址。 |
orchestrator_cert_file_path | Orchestrator 证书文件的绝对路径。 |
identity_cert_file_path | Identity Server 证书文件的绝对路径。 |
identity_access_token | 从 Identity Server 获取的访问令牌。 |
请参阅先决条件文件以获取证书:
如果安装时未提供证书,则安装程序将创建一个自行颁发的证书并在集群中对其进行配置。证书的有效期为 90 天。
在多节点安装中,仅第一个节点需要证书。
pwd
以获取放置文件目录的路径,并将证书文件名附加到 cluster_config.json
中。
在多节点安装中,仅第一个节点需要证书。
参数 | 描述 |
---|---|
server_certificate.ca_cert_file | 证书颁发机构证书的绝对路径。此证书颁发机构是对 TLS 证书进行签名的机构。如果是自签名,则是在前面的步骤中创建的 rootCA.crt 。如果要生成安装程序,请留空。
|
server_certificate.tls_cert_file | TLS 证书的绝对路径(在前面的步骤中创建的自签名证书 server.crt )。如果要生成安装程序,请留空。
|
server_certificate.tls_key_file | 证书密钥的绝对路径(在前面的步骤中创建的自签名证书 server.key )。如果要生成安装程序,请留空。
|
additional_ca_certs | 包含其他 CA 证书的文件的绝对路径,作为 Automation Suite 的一部分运行的所有服务均会信任这些证书。文件中的所有证书均应为有效的 PEM 格式。
例如,如果证书不是由公共证书颁发机构颁发,则需要提供包含 SQL Server CA 证书的文件。 |
如果您希望安装程序创建数据库,请填写以下字段
参数 | 描述 |
---|---|
sql.create_db | 设置为 true 。
|
sql.server_url | 您希望安装程序在其中配置数据库的 SQL Server 的 FQDN |
sql.port | SQL Server 中应托管数据库实例的端口号 |
sql.username | 用于连接到 SQL Server 的用户名/用户 ID。 |
sql.password | 之前提供的用于连接到 SQL Server 的用户名密码。 |
dbcreator
角色。这将授予他们在 SQL Server 中创建数据库的权限。否则,安装将失败。
ODBC 连接不支持包含特殊字符的用户名。对于 AI Center 和 Document Understanding 的数据库用户名,请仅使用大写和小写字母。
如果您要提供数据库,则我们需要为每个数据库提供 SQL 连接字符串。支持以下 SQL 连接字符串格式。
参数 | 描述 |
---|---|
sql_connection_string_template | 完整的 ADO.NET 连接字符串,其中目录名称设置为 DB_NAME_PLACEHOLDER。安装程序将使用已安装的套件服务的默认数据库名称替换此占位符。 |
sql_connection_string_template_jdbc | 完整的 JDBC 连接字符串,其中数据库名称设置为 DB_NAME_PLACEHOLDER。安装程序将使用已安装的套件服务的默认数据库名称替换此占位符。 |
sql_connection_string_template_odbc | 完整的 ODBC 连接字符串,其中数据库名称设置为 DB_NAME_PLACEHOLDER。安装程序将使用已安装的套件服务的默认数据库名称替换此占位符。
此参数由 Document Understanding 使用。 |
如果在配置文件中手动设置连接字符串,则可以对 SQL、JDBC 或 ODBC 密码进行转义,如下所示:
- 对于 SQL:在密码的开头和结尾添加
'
,并将任何其他'
加倍。 - 对于 JDBC/ODBC:在密码的开头添加
{
,在密码的末尾添加}
,并将其他任何}
加倍。
ql_connection_string_template 示例
Server=tcp:sfdev1804627-c83f074b-sql.database.windows.net:1433;Initial Catalog=DB_NAME_PLACEHOLDER;Persist Security Info=False;User Id=testadmin@sfdev1804627-c83f074b-sql.database.windows.net;Password=***;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Max Pool Size=100;
Server=tcp:sfdev1804627-c83f074b-sql.database.windows.net:1433;Initial Catalog=DB_NAME_PLACEHOLDER;Persist Security Info=False;User Id=testadmin@sfdev1804627-c83f074b-sql.database.windows.net;Password=***;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Max Pool Size=100;
ql_connection_string_template_jdbc 示例
jdbc:sqlserver://sfdev1804627-c83f074b-sql.database.windows.net:1433;database=DB_NAME_PLACEHOLDER;user=testadmin;password=***;encrypt=true;trustServerCertificate=false;Connection Timeout=30;hostNameInCertificate=sfdev1804627-c83f074b-sql.database.windows.net"
jdbc:sqlserver://sfdev1804627-c83f074b-sql.database.windows.net:1433;database=DB_NAME_PLACEHOLDER;user=testadmin;password=***;encrypt=true;trustServerCertificate=false;Connection Timeout=30;hostNameInCertificate=sfdev1804627-c83f074b-sql.database.windows.net"
sql_connection_string_template_odbc 示例</summary>
SERVER=sfdev1804627-c83f074b-sql.database.windows.net,1433;DATABASE=DB_NAME_PLACEHOLDER;DRIVER={ODBC Driver 17 for SQL Server};UID=testadmin;PWD=***;MultipleActiveResultSets=False;Encrypt=YES;TrustServerCertificate=NO;Connection Timeout=30;"
SERVER=sfdev1804627-c83f074b-sql.database.windows.net,1433;DATABASE=DB_NAME_PLACEHOLDER;DRIVER={ODBC Driver 17 for SQL Server};UID=testadmin;PWD=***;MultipleActiveResultSets=False;Encrypt=YES;TrustServerCertificate=NO;Connection Timeout=30;"
aicenter
SQL 配置参数:
参数 | 描述 |
---|---|
aicenter.ai_appmanager.sql_connection_str | AI 应用程序管理器 JDBC 连接字符串(有关 JDBC 格式,请参阅下文) |
AI Center 连接字符串示例
"aicenter": {
"enabled": true,
"sql_connection_str": "jdbc:sqlserver://sfdev1804627-c83f074b-sql.database.windows.net;instanceName=instance;database=aicenter;user=testadmin@sfdev1804627-c83f074b-sql.database.windows.net;password=TFgID_9GsE7_P@srCQp0WemXX_euHQZJ"
}
"aicenter": {
"enabled": true,
"sql_connection_str": "jdbc:sqlserver://sfdev1804627-c83f074b-sql.database.windows.net;instanceName=instance;database=aicenter;user=testadmin@sfdev1804627-c83f074b-sql.database.windows.net;password=TFgID_9GsE7_P@srCQp0WemXX_euHQZJ"
}
DU 连接字符串示例
"documentunderstanding":
{
"datamanager": {
"sql_connection_str": "mssql+pyodbc://testadmin:myPassword@mydev-sql.database.windows.net:1433/datamanager?driver=ODBC+Driver+17+for+SQL+Server",
}
"documentunderstanding":
{
"datamanager": {
"sql_connection_str": "mssql+pyodbc://testadmin:myPassword@mydev-sql.database.windows.net:1433/datamanager?driver=ODBC+Driver+17+for+SQL+Server",
}
db_owner
角色。如果安全限制不允许使用 db_owner
,则 SQL 帐户应在所有数据库上具有以下角色和权限:
db_ddladmin
db_datawriter
db_datareader
- 对 dbo 架构的
EXECUTE
权限
要配置足够的资源进行监控(请参阅使用监控堆栈),您应该考虑集群中的 vCPU 数量和所需的指标保留量。有关如何设置以下监控资源配置,请参见下文。
下表描述了监控字段的详细信息:
参数 | 描述 |
---|---|
prometheus_retention | 以天为单位。
此为指标将保留的天数,用于在 Grafana 中进行可视化并通过 Prometheus 控制台进行手动查询。 默认值为
7 。
|
prometheus_storage_size |
以 GB 为单位。 每个 Prometheus 副本要保留的存储空间量。 根据经验,将此值设置为:
示例: 如果您将
prometheus_retention 设置为 14 天,并且集群具有分布在 5 台计算机上的 80 个核心,则这将变为:
默认值为
45 ,不应设置得更低。
如果 Prometheus 的存储空间开始不足,系统将使用特定的修复说明触发警示。 |
prometheus_memory_limit |
以 MB 为单位。 限制每个 Prometheus 副本的内存量。 根据经验,将此值设置为:
示例: 如果您已将
prometheus_retention 设置为 14 天,并且集群具有分布在 5 台计算机上的 80 个核心,则这将变为:
对于单节点评估模式,默认值为
3200 ,对于多节点 HA 就绪生产模式,默认值为 6000 ,并且不应低于这个值。
如果 Prometheus 的内存开始不足,系统将使用特定的修复说明触发警示。 请参阅 此处。 |
示例:
"monitoring": {
"prometheus_retention": 14,
"prometheus_memory_limit": 16000,
"prometheus_storage_size": 104
}
"monitoring": {
"prometheus_retention": 14,
"prometheus_memory_limit": 16000,
"prometheus_storage_size": 104
}
cluster_config.json
。
您需要使用 vim 或您喜欢的编辑器将以下内容添加到配置文件中:
"proxy": {
"enabled": "true",
"http_proxy": "http://<PROXY-SERVER-IP>:<PROXY-PORT>",
"https_proxy": "http://<PROXY-SERVER-IP>:<PROXY-PORT>",
"no_proxy": "<Comma separated list of ips that should not got though proxy server>"
}
"proxy": {
"enabled": "true",
"http_proxy": "http://<PROXY-SERVER-IP>:<PROXY-PORT>",
"https_proxy": "http://<PROXY-SERVER-IP>:<PROXY-PORT>",
"no_proxy": "<Comma separated list of ips that should not got though proxy server>"
}
- 允许虚拟机上的
30070
端口进行入站和出站调用。必填参数 描述 enabled
使用 true
或false
启用或禁用代理设置。http_proxy
用于路由来自集群的 HTTP 出站请求。这应该是代理服务器 FQDN 和端口。 https_proxy
用于路由来自集群的 HTTPS 出站请求。这应该是代理服务器 FQDN 和端口。 no_proxy
您不希望通过代理服务器路由的 CIDR 格式的主机、IP 地址或 IP 范围的逗号分隔列表。这应该是私有子网范围、SQL Server 主机、命名服务器地址、元数据服务器地址: *.<fqdn>,<fixed_rke_address>:9345,<fixed_rke2_address>:6443
。fqdn
-cluster_config.json
中定义的集群 FQDNfixed_rke_address
-cluster_config.json
中定义的fixed_rke_address
named server address
-/etc/resolv.conf
中的 IP 地址private_subnet_ip
- 集群 VNetsql server host
- SQL 服务器主机metadata server address
- 云服务(例如 Azure 和 AWS)用于获取计算机元数据的 IP 地址169.254.169.254
要在多节点集群中启用区域故障恢复,请执行以下步骤:
- 确保节点均匀分布在三个可用区。对于除 AWS、Azure 或 GCP 以外的任何供应商提供的裸机服务器或虚拟机,必须通过每台计算机上
/etc/default/k8s-node-labels
处的配置文件以下列格式提供区域元数据。NODE_REGION_LABEL=<REGION_NAME> NODE_ZONE_LABEL=<ZONE_NAME> cat > /etc/default/k8s-node-labels <<EOF EXTRA_K8S_NODE_LABELS="topology.kubernetes.io/region=$NODE_REGION_LABEL,topology.kubernetes.io/zone=${NODE_ZONE_LABEL}" EOF
NODE_REGION_LABEL=<REGION_NAME> NODE_ZONE_LABEL=<ZONE_NAME> cat > /etc/default/k8s-node-labels <<EOF EXTRA_K8S_NODE_LABELS="topology.kubernetes.io/region=$NODE_REGION_LABEL,topology.kubernetes.io/zone=${NODE_ZONE_LABEL}" EOF - 在高级配置步骤中更新
cluster_config.json
文件。
cluster_config.json
,请在高级配置步骤中退出,然后使用 vim 或您喜欢的编辑器将以下内容添加到配置文件中:
"zone_resilience": true
"zone_resilience": true
必填参数 | 描述 |
---|---|
zone_resilience | 使用 true 或 false 启用或禁用区域故障恢复。
|
/etc/resolv.conf
中配置的名称服务器。Kubernetes 不适用于本地 DNS 解析程序(127.0.0.1 或 127.0.0.0/8),因此,如果您在 /etc/resolv.conf
文件中配置了此类名称服务器,则需要在 cluster_config.json
的 .infra.custom_dns_resolver
参数中传递具有可从虚拟机任何位置访问的正确名称服务器条目的参考文件。
有关已知限制的详细信息,请参阅 Kubernetes 文档。
可选参数 | 描述 |
---|---|
.infra.custom_dns_resolver | 服务器条目名称正确的文件路径,可从虚拟机上的任意位置加以访问。这些名称服务器条目不得来自 127.0.0.0/8 。
|