- Visão geral
- Requisitos
- Modelos de implantação
- Manual: preparando a instalação
- Manual: preparando a instalação
- Etapa 2: configuração do registro compatível com OCI para instalações offline
- Etapa 3: configuração do objectstore externo
- Etapa 4: configuração do High Availability Add-on
- Etapa 5: configuração de bancos de dados SQL
- Etapa 7: configuração do DNS
- Etapa 8: configuração dos discos
- Etapa 9: configuração dos ajustes do nível do kernel e do sistema operacional
- Etapa 10: configuração das portas do nó
- Etapa 11: aplicação de configurações diversas
- Etapa 12: validação e instalação dos pacotes RPM necessários
- Etapa 13: geração de cluster_config.json
- Amostra Cluster_config.json
- Configuração geral
- Configuração do perfil
- Configuração de Certificados
- Configuração do Banco de Dados
- Configuração externa do Objectstore
- Configuração de URL pré-assinada
- Configuração do ArgoCD
- Configuração da autenticação do Kerberos
- Configuração de registro externo compatível com OCI
- Disaster Recovery: configurações Ativo/Passivo e Ativo/Ativo
- Configuração do High Availability Add-on
- Configuração específica do Orchestrator
- Configuração específica do Insights
- Process Mining-specific configuration
- Configuração específica do Document Understanding
- Automation Suite Robots-specific configuration
- Configuração do monitoramento
- Opcional: configuração do servidor 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
- Optional: Increasing fault tolerance
- Adicionando um nó de agente dedicado com suporte a GPU
- Adicionando um nó de agente dedicado para robôs do Automation Suite
- Etapa 15: configuração do registro temporário do Docker para instalações offline
- Etapa 16: validação dos pré-requisitos para a instalação
- Executando o uipathctl
- Manual: realizando a instalação
- Pós-instalação
- Administração de cluster
- Gerenciando produtos
- Introdução ao portal de administração do cluster
- Adição de um novo nó ao cluster
- Como remover um nó do cluster
- Restaurando um nó de cluster
- Início e desligamento de um nó
- Renomeação de um nó
- Migração do Redis do High Availability Add-on no cluster para externo
- Migrating data between objectstores
- Migrating in-cluster objectstore to external objectstore
- Migração de um registro no cluster para um registro externo compatível com OCI
- Mudança para o cluster secundário manualmente em uma configuração Ativo/Passivo
- Disaster Recovery: executando operações pós-instalação
- Convertendo uma instalação existente para configuração multi-local
- Diretrizes sobre atualização de uma implantação Ativo/Passivo ou Ativo/Ativo
- Diretrizes sobre backup e restauração de uma implantação Ativo/Passivo ou Ativo/Ativo
- Escalando uma implantação de nó único (avaliação) para uma implantação de vários nós (HA)
- Monitoramento e alertas
- Migração e atualização
- Migração entre clusters do Automation Suite
- Atualizando o Automação Suite
- Download dos pacotes de instalação e obtenção de todos os arquivos no primeiro nó do servidor
- Recuperação da mais recente configuração aplicada do cluster
- Atualização da configuração de cluster
- Configuração do registro compatível com OCI para instalações offline
- Execução da atualização
- Realização de operações pós-atualização
- Configuração específica do produto
- Configuração avançada do Orchestrator
- Configuração de parâmetros do Orchestrator
- Configuração do AppSettings
- Configuração do tamanho máximo da solicitação
- Substituição da configuração de armazenamento no nível do cluster
- Configuração do NLog
- Salvando logs do robô no Elasticsearch
- Configuração dos repositórios de credenciais
- Configuração da chave de criptografia por tenant
- Limpeza do banco de dados do Orchestrator
- Ignorar a instalação da biblioteca do host
- Melhores práticas e manutenção
- Solução de problemas
- Como solucionar problemas dos serviços durante a instalação
- Como reduzir as permissões para um diretório de backup NFS
- Como desinstalar o cluster
- Como limpar os artefatos offline para melhorar o espaço em disco
- Como limpar os dados do Redis
- Como habilitar o registro em log do Istio
- Como limpar logs manualmente
- Como limpar logs antigos armazenados no bucket do sf-logs
- Como desabilitar os logs de streaming para o AI Center
- Como depurar instalações do Automation Suite com falha
- Como excluir imagens do instalador antigo após a atualização
- Como desabilitar o descarregamento de soma de verificação do TX
- Como definir manualmente o nível de log do ArgoCD como Info
- Como expandir o armazenamento do AI Center
- Como gerar o pull_secret_value codificado para registros externos
- Como lidar com cifras fracas no TLS 1.2
- Como verificar a versão do TLS
- Como trabalhar com certificados
- Como agendar o backup e restaurar dados do Ceph
- Como coletar dados de uso de DU com objectstore (Ceph) no cluster
- Como instalar o RKE2 SELinux em ambientes air-gapped
- Como limpar backups diferenciados antigos em um servidor NFS
- Como implantar o Insights em um cluster habilitado para FIPS
- Como migrar para o Cgroup v2
- Como recuperar a autenticação do Kerberos após uma reinicialização da VM
- Como enviar uma imagem do Docker local para o registro no cluster
- Como excluir buckets do backup
- Erro ao baixar o pacote
- A instalação offline falha devido a um binário ausente
- Problema de certificado na instalação offline
- Erro de validação da string de conexão ao SQL
- Azure disk not marked as SSD
- Falha após a atualização do certificado
- Erros de validação de certificado TLS
- Antivírus causa problemas de instalação
- Automation Suite not working after OS upgrade
- O Automation Suite requer que backlog_wait_time seja definido como 0
- A instalação do registro temporário falha no RHEL 8.9
- Problema de reinício frequente em implantações de namespace uipath durante instalações offline
- Configurações de DNS não honradas pelo CoreDNS
- A geração de registros no cluster falha devido a memória insuficiente
- As verificações de pré-requisitos falham quando os projetos modernos do Document Understanding estão habilitados e o AI Center está desabilitado
- Upgrade fails due to unhealthy Ceph
- RKE2 não é iniciado devido a um problema de espaço
- A atualização falha devido a objetos clássicos no banco de dados do Orchestrator
- Um cluster do Ceph foi encontrado em um estado degradado após atualização lado a lado
- A atualização do serviço falha para o Apps
- Tempos limite de atualização no local
- Falha de atualização em ambientes offline
- pod snapshot-controller-crds no estado CrashLoopBackOff após a atualização
- Falha de atualização devido aos tamanhos de PVC do Insights substituídos
- Falha de atualização devido ao nome de host em letra maiúscula
- Configurando um intervalo de tempo limite para os portais de gerenciamento
- Autenticação não funciona após migração
- kinit: não é possível encontrar o KDC para o realm <AD Domain> ao obter credenciais iniciais
- kinit: o Keytab não contém chaves adequadas para *** ao obter credenciais iniciais
- Falha na operação GSSAPI devido a código de status inválido
- Alarme recebido para trabalho com falha do Kerberos-tgt-update
- Provedor de SSPI: servidor não encontrado no banco de dados Kerberos
- Falha de login para usuário do AD devido a conta desabilitada
- ArgoCD login failed
- Atualizar as conexões de diretório subjacentes
- Falha ao obter a imagem do sandbox
- Os pods não são exibidos na UI do ArgoCD
- Falha de teste do Redis
- O servidor RKE2 falha ao iniciar
- Segredo não encontrado no namespace da UiPath
- O ArgoCD entra em estado Em andamento após a primeira instalação
- Pod de repositório do ArgoCD em CrashLoopBackOff
- Migreção manual do ArgoCD NetworkPolicy (GHSA-47m3-95c7-g2g8)
- Métricas Ceph-rook ausentes nos painéis de monitoramento
- Incompatibilidade em erros relatados durante as verificações de integridade do diagnóstico
- Configuração de solicitações e limites de recursos para cargas de trabalho criadas pelo uipathctl
- Nenhum problema upstream íntegro
- Inicialização do Redis bloqueada por antivírus
- Os pods do AI Center e do Document Understanding falham ao iniciar com a verificação do certificado TLS habilitada
- O Fluentd não exporta logs em ambientes IPv6
- O Studio Desktop não pode carregar conectores e atividades do Integration Service
- O Document Understanding não está no menu de navegação esquerdo do Automation Suite
- Status de Falha ao criar uma sessão de rotulagem de dados
- Status de Falha ao tentar implantar uma habilidade de ML
- Trabalho de migração falha no ArgoCD
- Reconhecimento de escrita com o Extrator de formulários inteligente não está funcionando
- Execução de alta disponibilidade com o Process Mining
- Falha na ingestão do Process Mining ao fazer logon usando o Kerberos
- Não é possível conectar-se ao banco de dados AutomationSuite_ProcessMining_Warehouse usando uma string de conexão em formato pyodbc.
- A instalação do Airflow falha com sqlalchemy.exc.ArgumentError: não foi possível analisar o URL rfc1738 da string ''
- Como adicionar uma regra de tabela de IP para usar a porta 1433 do SQL Server
- O certificado do Automation Suite não é confiável para o servidor em que o CData Sync está sendo executado
- Execução da ferramenta de diagnóstico
- Usando o pacote de suporte do Automation Suite
- Exploração de logs
Inicie e desligue os nós com segurança no Automation Suite, cobrindo o comportamento de inicialização e desligamento manual e automático.
Esta página explica o comportamento de inicialização e desligamento manual e automático do Automation Suite.
Você deve sempre prosseguir desativando um nó, executando a operação necessária, aguardando até que o nó esteja íntegro e, então, desativando o outro nó para executar a mesma operação.
A tabela a seguir descreve diferentes cenários que você pode enfrentar ao desligar serviços ou nós do cluster. A tabela fornece ações detalhadas que você deve realizar para cada situação, juntamente com orientações sobre a compreensão do comportamento esperado em resposta a essas ações.
| Cenário | Ação | Comportamento esperado |
|---|---|---|
| Desligar os serviços de cluster em um nó sem desligar o nó, para manutenção ou por qualquer outro motivo. |
| Em um cenário de HA, a maioria dos serviços permanecerá ativa. O nó deve ser inicializado sem nenhum problema e qualquer serviço inoperante deve ser reiniciado. |
| Desligamento de todos os serviços de cluster sem desabilitar os nós, para manutenção ou por qualquer outro motivo. |
| Os serviços ficarão indisponíveis. Os nós devem ser inicializados sem problemas. |
| Desligando todos os nós. | Se seu portal de gerenciamento de hipervisor (como VMware, AWS) permitir que os serviços façam o desligamento normal sem forçar a terminação da máquina, realize um desligamento normal. Por padrão, o subsistema systemd permite um período de tolerância para que os serviços sejam desligados antes de serem encerrados à força. No entanto, se seu sistema substituir os tempos de desligamento configurados, isso poderá interferir com um desligamento normal. Por exemplo, no AWS, a plataforma pode forçar o encerramento de uma VM após dois minutos. Dessa forma, os serviços devem ser desligados manualmente, pois uma drenagem de nó pode levar até 5 minutos (esse é um requisito para um desligamento normal). | Se o desligamento for normal, os nós devem ser inicializados sem problemas. Se o cluster tiver sido desligado por mais de seis horas e a autenticação do Kerberos estiver configurada, pode ser necessário renovar os tíquetes do Kerberos após a reinicialização. Para obter detalhes, consulte Recuperar a autenticação do Kerberos após o reinício da VM. |
| Desligamento de um nó individual. | Se seu portal de gerenciamento de hipervisor (como VMware, AWS) permitir que os serviços façam o desligamento normal sem forçar a terminação da máquina, realize um desligamento normal. Por padrão, o subsistema systemd permite um período de tolerância para que os serviços sejam desligados antes de serem encerrados à força. No entanto, se seu sistema sobrescrever os tempos de desligamento configurados, isso poderá interferir com um desligamento normal. Por exemplo, no AWS, a plataforma pode forçar o encerramento de uma VM após dois minutos. Dessa forma, os serviços devem ser desligados manualmente, pois uma drenagem de nó pode levar até 5 minutos (esse é um requisito para um desligamento normal). | Se o processo de desligamento não forçar, o nó deve reinicializar sem problemas. |
| Encerrando de forma forçada um nó do servidor. | Não aplicável. | Na maioria dos casos, o nó será inicializado, mas pode haver problemas com alguns serviços que usam dados persistentes. Embora esses problemas normalmente sejam recuperáveis, a configuração de backups é altamente recomendável. O pod do Insights não será reiniciado até que o nó original esteja novamente online, para evitar a possível perda de dados. Se o nó não for recuperável, entre em contato com a equipe de suporte. |
Comportamento de Desligamento
Durante o desligamento, systemd interrompe os serviços na ordem em que foram iniciados. Como o serviço node-drain tem a diretiva After=rke2-server.service ou After=rke2-agent.service, ele executa sua sequência de desligamento antes do desligamento de rke2-service.Isso significa que em um sistema devidamente configurado, desligar o nó de forma correta é uma operação segura.
Reinicialização manual
Se você planeja interromper o serviço do rke2 e reinicializar a máquina, execute os seguintes comandos:
-
Para garantir que o cluster esteja íntegro enquanto executa a atividade de manutenção do nó, você deve drenar as cargas de trabalho em execução nesse nó para outros nós.Para drenar o nó, execute o seguinte comando:
systemctl stop node-drain.servicesystemctl stop node-drain.service -
Interrompa o processo do Kubernetes no nó, dependendo do tipo de nó:
- Em um nó servidor:
systemctl stop rke2-serversystemctl stop rke2-server - Em um nó agente:
systemctl stop rke2-agentsystemctl stop rke2-agent
- Em um nó servidor:
-
Encerre os serviços e o containerd do rke2 e todos os processos filhos:
rke2-killall.shrke2-killall.sh
Para baixar o script rke2-killall.sh , consulte Links de download de pacotes de instalação.
Comportamento de inicialização
Os rke2-service inicia e é seguido por node-drainer e node-uncordon. node-drainer não faz nenhuma ação na inicialização, apenas retorna a confirmação de que o serviço está ativo.
O node-uncordon é executado apenas uma vez e inicia /opt/node-drain.sh nodestart, que libera o nó. Durante o procedimento de drenagem que ocorre no desligamento, isso isola o nó, tornando-o não programável. Esse estado persiste quando o serviço do rke2 é iniciado. Portanto, o nó deve ser liberado após a reinicialização de rke2-service.
Inicialização manual
O serviço é iniciado automaticamente com o Automation Suite. Contudo, se rke2-service foi interrompido manualmente, inicie o serviço novamente executando os seguintes comandos:
-
Inicie o processo do Kubernetes no nó, dependendo do tipo de nó:
- Em um nó servidor:
systemctl start rke2-serversystemctl start rke2-server - Em um nó agente:
systemctl start rke2-agentsystemctl start rke2-agent
- Em um nó servidor:
-
Depois que o serviço
rke2for iniciado, libere o nó para garantir que o Kubernetes possa agendar cargas de trabalho neste nó:systemctl restart node-uncordonsystemctl restart node-uncordon -
Depois que o nó for iniciado, você deve drenar o nó:
systemctl start node-drain.servicesystemctl start node-drain.serviceImportante:Ignorar essa etapa pode fazer com que o serviço Kubelet seja desligado de maneira inadequada se o sistema for reiniciado.
Patch de nós do cluster
Ao corrigir ou reiniciar nós do servidor, a ordem na qual você aplica as mudanças afeta diretamente a estabilidade do cluster.
Verificações pré-patch
Antes de tocar em qualquer nó, confirme se o cluster está íntegro:
-
Confirme que todos os três membros do etcd estejam íntegros:
ETCD_CONTAINER="$(/var/lib/rancher/rke2/bin/crictl ps --name etcd --state Running -q | head -n1)" /var/lib/rancher/rke2/bin/crictl exec "$ETCD_CONTAINER" etcdctl \ --endpoints=https://127.0.0.1:2379 \ --cacert=/var/lib/rancher/rke2/server/tls/etcd/server-ca.crt \ --cert=/var/lib/rancher/rke2/server/tls/etcd/server-client.crt \ --key=/var/lib/rancher/rke2/server/tls/etcd/server-client.key \ endpoint health --clusterETCD_CONTAINER="$(/var/lib/rancher/rke2/bin/crictl ps --name etcd --state Running -q | head -n1)" /var/lib/rancher/rke2/bin/crictl exec "$ETCD_CONTAINER" etcdctl \ --endpoints=https://127.0.0.1:2379 \ --cacert=/var/lib/rancher/rke2/server/tls/etcd/server-ca.crt \ --cert=/var/lib/rancher/rke2/server/tls/etcd/server-client.crt \ --key=/var/lib/rancher/rke2/server/tls/etcd/server-client.key \ endpoint health --cluster -
Verifique se há loops de falha em qualquer nó:
journalctl -u rke2-server --since "2 hours ago" | grep -i "FAILURE\|left-over\|unclean"journalctl -u rke2-server --since "2 hours ago" | grep -i "FAILURE\|left-over\|unclean" -
Verifique se existe um instantâneo recente etcd:
ls -lth /var/lib/rancher/rke2/server/db/snapshots/ | head -5ls -lth /var/lib/rancher/rke2/server/db/snapshots/ | head -5
Não inicie o patch se algum nó já estiver com loop de falha ou se as verificações de integridade do etcd falharem. Resolva a instabilidade antes de prosseguir.
Identificar o nó de inicialização
O nó de inicialização é normalmente o líder atual do etcd. Para identificá-lo, execute o seguinte comando e IS LEADER: true:
ETCD_CONTAINER="$(/var/lib/rancher/rke2/bin/crictl ps --name etcd --state Running -q | head -n1)"
/var/lib/rancher/rke2/bin/crictl exec "$ETCD_CONTAINER" etcdctl \
--endpoints=https://127.0.0.1:2379 \
--cacert=/var/lib/rancher/rke2/server/tls/etcd/server-ca.crt \
--cert=/var/lib/rancher/rke2/server/tls/etcd/server-client.crt \
--key=/var/lib/rancher/rke2/server/tls/etcd/server-client.key \
endpoint status --cluster
ETCD_CONTAINER="$(/var/lib/rancher/rke2/bin/crictl ps --name etcd --state Running -q | head -n1)"
/var/lib/rancher/rke2/bin/crictl exec "$ETCD_CONTAINER" etcdctl \
--endpoints=https://127.0.0.1:2379 \
--cacert=/var/lib/rancher/rke2/server/tls/etcd/server-ca.crt \
--cert=/var/lib/rancher/rke2/server/tls/etcd/server-client.crt \
--key=/var/lib/rancher/rke2/server/tls/etcd/server-client.key \
endpoint status --cluster
Ordem do patch
Sempre corrija o nó de inicialização primeiro, depois os nós secundários, um de cada vez.
Aplicar patch ao nó de inicialização primeiro garante que, quando ele ficar inativo, os dois nós secundários mantenham o quorum e elejam um novo líder. O nó de inicialização então retorna como seguidor em um estado limpo. Corrigir os nós secundários primeiro e deixar o nó de inicialização para o último pode causar uma instabilidade mais ampla se o nó de inicialização falhar ao se reingressar corretamente.
Após cada nó corrigir e reiniciar, confirme que ele está totalmente de volta antes de prosseguir para o próximo nó:
-
Verifique se o status do nó é
Ready:kubectl get nodeskubectl get nodes -
Confirme que todos os três membros do etcd estejam íntegros:
ETCD_CONTAINER="$(/var/lib/rancher/rke2/bin/crictl ps --name etcd --state Running -q | head -n1)" /var/lib/rancher/rke2/bin/crictl exec "$ETCD_CONTAINER" etcdctl \ --endpoints=https://127.0.0.1:2379 \ --cacert=/var/lib/rancher/rke2/server/tls/etcd/server-ca.crt \ --cert=/var/lib/rancher/rke2/server/tls/etcd/server-client.crt \ --key=/var/lib/rancher/rke2/server/tls/etcd/server-client.key \ endpoint health --clusterETCD_CONTAINER="$(/var/lib/rancher/rke2/bin/crictl ps --name etcd --state Running -q | head -n1)" /var/lib/rancher/rke2/bin/crictl exec "$ETCD_CONTAINER" etcdctl \ --endpoints=https://127.0.0.1:2379 \ --cacert=/var/lib/rancher/rke2/server/tls/etcd/server-ca.crt \ --cert=/var/lib/rancher/rke2/server/tls/etcd/server-client.crt \ --key=/var/lib/rancher/rke2/server/tls/etcd/server-client.key \ endpoint health --cluster -
Verifique se há erros nos logs do servidor RKE2:
journalctl -u rke2-server -n 30journalctl -u rke2-server -n 30
Atualizações do kernel
Ao executar uma atualização do kernel, limpe o armazenamento de instantâneo em contêiner após executar rke2-killall.sh e antes de aplicar a atualização do kernel. Isso evita a corrupção do estado do contêiner em qualquer nó, independentemente da ordem de correção.
Arquivos criados durante a instalação
Os seguintes arquivos de unidade são criados durante a instalação:
- (somente servidor) - Inicia o
rke2-server.service, que inicia o nórke2-serverservidor. - (apenas agente) - Inicia o
rke2-agent.service, o que inicia o nórke2-agentagente. node-drain.service- Usado no momento do desligamento. Executado antes de desligarrke2-agentourke2-servere executa uma drenagem. Tem um tempo limite de 300 segundos.node-uncordon.service- Usado na inicialização para liberar um nó.var-lib-kubelet.mountGerado automaticamente pelo gerador fstab.var-lib-rancher-rke2-server-db.mountGerado automaticamente pelo gerador fstab.var-lib-rancher.mountGerado automaticamente pelo gerador fstab.
Não há dependências fortes entre os arquivos da unidade. No entanto, node-drain e node-uncordon têm a diretiva After=rke2-server.service ou After=rke2-agent.service. Isso significa que esses serviços começarão após o rke2-server.service.