- Introdução
- Requisitos de rede
- Requisitos e instalação de um nó
- Requisitos e instalação de vários nós
- Pós-instalação
- Acesso ao AI Center
- Provisionamento de um tenant do AI Center
- Atualização dos certificados do Orchestrator e do Identity Server
- Redimensionamento de PVC
- Adição de um novo nó ao cluster
- Instalação offline de pacotes de ML
- Configuração do cluster
- Configuração da pós-instalação do FQDN
- Backup e restauração do cluster
- Uso da pilha de monitoramento
- Configuração de uma autenticação do Kerberos
- Provisionamento de uma GPU
- Uso do arquivo de configuração
- Sobre o arquivo de configuração
- Agendamento de nós
- Migração e atualização
- Guia básico de solução de problemas
Guia de instalação do AI Center
Sobre o arquivo de configuração
cluster_config.json
define os parâmetros, configurações e preferências aplicados aos serviços da UiPath. Você precisa atualizar esse arquivo se quiser alterar padrões e usar qualquer configuração avançada para seu cluster.
cluster_config.json
, você pode usar:
- um editor de texto do Linux, como vi ou GNU nano, diretamente na máquina Linux via SSH (por exemplo, comando:
vi cluster_config.json
); - seu editor de texto preferido e, em seguida, copie e cole o arquivo na máquina.
cluster_config.json
, use true
ou false
para o sinalizador enabled
.
Parâmetros obrigatórios | Description |
---|---|
fqdn | O balanceador de carga (vários nós) ou nome de domínio da máquina (nó único). |
fixed_rke_address | O endereço fixo usado para registro de nó de balanceamento de carga e solicitações de API do kube. Deve ser fqdn se o balanceador de carga estiver configurado como recomendado. Caso contrário, FQDN do 1º nó do servidor. Consulte Configuração do balanceador de carga.
Pode ser o IP/FQDN do primeiro servidor rke2 na sua configuração. |
multinode | Defina como true se for fazer instalação de vários nós
|
admin_username | O nome de usuário que você deseja definir como administrador (como: admin ) para a organização do host. |
admin_password | A senha de administrador do tenant do host a ser definida. |
rke_token | Use um GUID recém-gerado aqui. Este é um segredo pré-compartilhado, específico do cluster. É necessário para todos os nós associados ao cluster. |
profile | Define o perfil da instalação. Os perfis disponíveis são:
|
gpu_support | true ou false - ativa ou desativa o suporte de GPU para o cluster.
Defina como ‘true’ se você tiver nós de agente com GPUs. Por padrão, ele é definido como 'false' |
infra.docker_registry.username | O nome de usuário que você deseja definir para a instalação do registro do docker. |
infra.docker_registry.password | A senha que você deseja definir para a instalação do registro do docker. |
Parâmetros opcionais | Description |
---|---|
telemetry_optout | true ou false - usado para desativar o envio de telemetria de volta ao UiPath. Ele é definido como false por padrão.
Se você deseja cancelar, defina como
true .
|
Parâmetros do AI Center | Description |
---|---|
sql_connection_str | O nome da conexão SQL. |
orchestrator_url | O endereço da URL do Orchestrator. |
identity_server_url | O endereço da URL do Identity Server. |
orchestrator_cert_file_path | O caminho absoluto para o arquivo de certificado do Orchestrator. |
identity_cert_file_path | O caminho absoluto para o arquivo de certificado do Identity Server. |
identity_access_token | O token de acesso obtido do Identity Server. |
Consulte o documento de pré-requisitos para obter o certificado:
Se nenhum certificado for fornecido no momento de instalação, o instalador criará um certificado emitido automaticamente e o configurará no cluster. A validade do certificado é de 90 dias.
Em instalações com vários nós, um certificado é necessário apenas no primeiro nó.
pwd
para obter o caminho do diretório no qual os arquivos são colocados e anexe o nome do arquivo de certificado no cluster_config.json
.
Em instalações com vários nós, um certificado é necessário apenas no primeiro nó.
Parâmetro | Description |
---|---|
server_certificate.ca_cert_file | Caminho absoluto para o certificado de Autoridade de certificado. Esse certificado é a autoridade que assina o certificado de TLS. No caso de autoassinado, é o rootCA.crt criado em etapas anteriores. Deixe em branco, caso você queira que o instalador seja gerado.
|
server_certificate.tls_cert_file | Caminho absoluto para o certificado de TLS (server.crt para autoassinado, criado em etapas anteriores). Deixe em branco, caso você queira que o instalador gere.
|
server_certificate.tls_key_file | Caminho absoluto para a chave de certificado (server.key para autoassinado, criado em etapas anteriores). Deixe em branco, caso você queira que o instalador gere.
|
additional_ca_certs | O caminho absoluto para o arquivo contendo certificados de CA adicionais que você deseja que seja confiável para todos os serviços que funcionam como parte do Automation Suite. Todos os certificados no arquivo devem ter um formato PEM válido.
Por exemplo, você precisa fornecer o arquivo que contém o certificado de CA do SQL Server se o certificado não for emitido por uma autoridade de certificação pública. |
Se desejar que o instalador crie os bancos de dados, preencha os seguintes campos
Parâmetro | Description |
---|---|
sql.create_db | Defina como true .
|
sql.server_url | FQDN do servidor sql, onde você deseja instalar para configurar o banco de dados |
sql.port | número da porta na qual uma instância de banco de dados deve ser hospedada no servidor sql |
sql.username | nome de usuário/userid para conectar-se ao sql server. |
sql.password | senha do nome de usuário fornecida anteriormente para conectar-se ao sql server. |
dbcreator
. Isso concede a ele permissão para criar o banco de dados no SQL Server. Caso contrário, a instalação falha.
A conexão ODBC não aceita nomes de usuário que contenham caracteres especiais. Para nomes de usuário de banco de dados do AI Center e do Document Understanding, use apenas letras maiúsculas e minúsculas.
Caso você esteja fornecendo o banco de dados, precisamos de strings de SQLconnection para cada banco de dados. Os seguintes formatos de string de conexão SQL são compatíveis.
Parâmetro | Description |
---|---|
sql_connection_string_template | String de conexão completa do ADO.NET onde o nome do catálogo é definido como DB_NAME_PLACEHOLDER. O instalador substituirá esse espaço reservado pelos nomes de banco de dados padrão para os serviços do pacote instalado. |
sql_connection_string_template_jdbc | String de conexão completa do JDBC onde o nome do banco de dados é definido como DB_NAME_PLACEHOLDER. O instalador substituirá esse espaço reservado pelos nomes de banco de dados padrão para os serviços do pacote instalado. |
sql_connection_string_template_odbc | String de conexão completa do ODBC onde o nome do banco de dados é definido como DB_NAME_PLACEHOLDER. O instalador substituirá esse espaço reservado pelos nomes de banco de dados padrão para os serviços do pacote instalado.
Esse parâmetro é usado pelo Document Understanding. |
Se você definir manualmente as strings de conexão no arquivo de configuração, poderá usar o caractere de escape em senhas SQL, JDBC ou ODBC da seguinte maneira:
- para SQL: adicione
'
no início e no fim da senha, e duplique qualquer outro'
. - para JDBC/ODBC: adicione
{
no início da senha e}
no final, e duplique qualquer outro}
ql_connection_string_template exemplo
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;
Exemplo: 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"
Exemplo de 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
de configuração de SQL:
Parâmetro | Description |
---|---|
aicenter.ai_appmanager.sql_connection_str | String de conexão JDBC do gerenciador de aplicativos AI (consulte abaixo para o formato JDBC) |
Amostra de string de conexão do 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"
}
Exemplo de string de conexão 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
para todos os bancos de dados. Se as restrições de segurança não permitem o uso de db_owner
, então a conta do SQL deve ter as seguintes funções e permissões em todos os bancos de dados:
db_ddladmin
db_datawriter
db_datareader
EXECUTE
permissão no esquema dbo
Para provisionar recursos suficientes para o monitoramento (consulte Uso da pilha de monitoramento), você deve considerar a quantidade de vCPUs no cluster e a quantidade de retenção de métrica desejada. Confira abaixo como definir as seguintes configurações de recursos de monitoramento.
A tabela a seguir descreve os detalhes do campo de monitoramento:
Parâmetro | Description |
---|---|
prometheus_retention | Em dias.
Esta é a quantidade de dias que as métricas serão mantidas para a finalidade de visualização no Grafana e consulta manual usando o console do Prometheus. O valor padrão é
7 .
|
prometheus_storage_size |
Em GB. Quantidade de espaço de armazenamento a ser reservado por réplica do Prometheus. Uma boa regra prática é definir esse valor como:
Exemplo: Se você definir
prometheus_retention como 14 dias, e seu cluster tiver 80 núcleos distribuídos em 5 máquinas, isso se torna:
O valor padrão é
45 e não deve ser definido um valor inferior.
Se o Prometheus começar a ficar sem espaço de armazenamento, um alerta será enviado com instruções de correção específicas. |
prometheus_memory_limit |
Em MB. Quantidade de memória a ser limitada para cada réplica do Prometheus. Uma boa regra prática é definir esse valor como:
Exemplo: Se você definir
prometheus_retention como 14 dias, e seu cluster tiver 80 núcleos distribuídos em 5 máquinas, isso se torna:
O valor padrão é
3200 para o modo de avaliação de nó único, e 6000 para o modo de produção pronto para alta disponibilidade de vários nós, e não deve ser definido um valor inferior.
Se o Prometheus começar a ficar sem memória, um alerta será enviado com instruções de correção específicas. Confira aqui. |
Exemplo:
"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
durante a etapa de configuração avançada.
Você precisa adicionar o seguinte ao arquivo de configuração usando o vim ou o editor de sua preferência no arquivo de configuração:
"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>"
}
- Permitir porta
30070
na VM para chamadas de entrada e saída.Parâmetros obrigatórios Description enabled
Use true
oufalse
para habilitar ou desabilitar as configurações de proxy.http_proxy
Usado para rotear solicitações de saída HTTP do cluster. Este deve ser o FQDN e a porta do servidor proxy. https_proxy
Usado para rotear solicitações de saída HTTPS do cluster. Este deve ser o FQDN e a porta do servidor proxy. no_proxy
Lista separada por vírgulas de hosts, endereços IP ou intervalos de IP no formato CIDR que você não deseja rotear por meio do servidor proxy. Este deve ser um intervalo de sub-rede privada, host do SQL Server, endereço do servidor nomeado, endereço do servidor de metadados: *.<fqdn>,<fixed_rke_address>:9345,<fixed_rke2_address>:6443
.fqdn
– o FQDN do cluster definido emcluster_config.json
fixed_rke_address
– ofixed_rke_address
definido emcluster_config.json
named server address
– o endereço IP de/etc/resolv.conf
private_subnet_ip
– o VNet do clustersql server host
– o host do SQL Servermetadata server address
– o endereço IP169.254.169.254
usado para buscar metadados de máquina por serviços de nuvem, como o Azure e o AWS
Opcional: habilitação da resiliência a falhas zonais em um cluster de produção pronto para alta disponibilidade de vários nós
Para habilitar a resiliência a falhas zonais em um cluster de vários nós, siga estas etapas:
- Certifique-se de que os nós estejam distribuídos uniformemente em três zonas de disponibilidade. Para um servidor bare-metal ou VM fornecido por qualquer fornecedor, exceto AWS, Azure ou GCP, os metadados da zona devem ser fornecidos por meio do arquivo de configuração
/etc/default/k8s-node-labels
em cada máquina no formato a seguir.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 - Atualize o arquivo
cluster_config.json
durante a etapa de configuração avançada.
cluster_config.json
usando o assistente de instalação interativo, feche na etapa de configuração avançada e adicione o seguinte ao arquivo de configuração usando o vim ou o editor de sua preferência:
"zone_resilience": true
"zone_resilience": true
Parâmetros obrigatórios | Description |
---|---|
zone_resilience | Use true ou false para habilitar ou desabilitar a resiliência à falha zonal.
|
/etc/resolv.conf
. O Kubernetes não funciona com resolvedores de DNS locais (127.0.0.1 ou 127.0.0.0/8), portanto, se você tiver esses servidores de nomes configurados no arquivo /etc/resolv.conf
, é necessário passar uma referência de arquivo com as entradas de servidor de nomes corretas acessíveis a partir de qualquer lugar na VM no parâmetro .infra.custom_dns_resolver
em cluster_config.json
.
Para obter detalhes sobre uma limitação conhecida, consulte a Documentação do Kubernetes.
Parâmetro opcional | Description |
---|---|
.infra.custom_dns_resolver | Caminho para o arquivo com as entradas corretas do servidor de nomes que podem ser acessadas de qualquer lugar na VM. Essas entradas de servidor de nomes não devem ser de 127.0.0.0/8 .
|
- Configuração geral
- Configuração de certificados
- Configuração do Banco de Dados
- Cria automaticamente os bancos de dados necessários
- Traga seu próprio banco de dados
- Configuração do monitoramento
- Opcional: adicionar configuração de proxy
- Opcional: habilitação da resiliência a falhas zonais em um cluster de produção pronto para alta disponibilidade de vários nós
- Opcional: transmitindo resolv.conf personalizado