- Vue d'ensemble (Overview)
- Prérequis
- Modèles de déploiement
- Manuel : Préparation de l'installation
- Manuel : Préparation de l'installation
- Étape 2 : configurer le registre compatible OCI pour les installations hors ligne
- Étape 3 : configurer le magasin d’objets externe
- Étape 4 : Configuration de High Availability Add-on
- Étape 5 : configurer les bases de données SQL
- Étape 7 : configurer le DNS
- Étape 8 : configuration des disques
- Étape 9 : configurer les paramètres au niveau du noyau et du système d’exploitation
- Étape 10 : configuration des ports de nœud
- Étape 11 : appliquer divers paramètres
- Étape 12 : Valider et installer les packages RPM requis
- Étape 13 : génération du fichier cluster_config.json
- Exemple Cluster_config.json
- Configuration générale
- Configuration du profil
- Configuration du certificat
- Configuration de la base de données
- Configuration du magasin d'objets externe
- Configuration d'URL pré-signée
- Configuration d'ArgoCD
- Configuration de l'authentification Kerberos
- Configuration du registre externe compatible OCI
- Disaster Recovery : configurations actif/passif et actif/actif
- Configuration de High Availability Add-on
- Configuration spécifique à Orchestrator
- Configuration spécifique à Insights
- Configuration spécifique à Process Mining
- Configuration spécifique à Document Understanding
- Configuration spécifique à Automation Suite Robots
- Configuration de la surveillance
- Facultatif : configuration du serveur proxy
- Facultatif : Activation de la résilience aux échecs locaux dans un cluster en mode production multi-nœuds compatible haute disponibilité
- Facultatif : Transmettre le fichier personnalisé resolv.conf
- Facultatif : augmentation de la tolérance aux pannes
- Ajout d'un nœud d'agent dédié avec prise en charge GPU
- Ajout d'un nœud d'agent dédié pour les Automation Suite Robots
- Étape 15 : configuration du registre Docker temporaire pour les installations hors ligne
- Étape 16 : validation des prérequis de l’installation
- Exécution de uipathctl
- Manuel : Exécution de l'installation
- Post-installation
- Administration du cluster
- Gestion des produits
- Premiers pas avec le portail d'administration du cluster
- Ajouter un nouveau nœud au cluster
- Supprimer un nœud du cluster
- Pavage d'un nœud de cluster
- Démarrage et arrêt d’un nœud
- Renommer un nœud
- Migration de Redis de High Availability Add-on externe vers un une version externe de High Availability Add-on
- Migration des données entre les librairies
- Migration d'un magasin d'objets intégré au cluster vers un magasin d'objets externe
- Migration du registre intégré au cluster vers un registre externe compatible OCI
- Basculer manuellement vers le cluster secondaire dans une configuration actif/passif
- Disaster Recovery : exécution d'opérations post-installation
- Conversion d'une installation existante en configuration multi-sites
- Recommandations pour mettre à niveau un déploiement actif/passif ou actif/actif
- Recommandations pour sauvegarder et restaurer un déploiement actif/passif ou actif/actif
- Mise à l'échelle d'un déploiement à nœud unique (évaluation) vers un déploiement multi-nœuds (HA)
- Surveillance et alerte
- Migration et mise à niveau
- Migration entre les clusters Automation Suite
- Mettre à niveau Automation Suite
- Téléchargement des packages d'installation et obtention de l'ensemble des fichiers sur le premier nœud de serveur
- Récupération de la dernière configuration appliquée à partir du cluster
- Mise à jour de la configuration du cluster
- Configuration du registre compatible OCI pour les installations hors ligne
- Exécution de la mise à niveau
- Exécution d'opérations post-mise à niveau
- Configuration spécifique au produit
- Configuration avancée d'Orchestrator
- Configuration des paramètres d'Orchestrator
- Configuration des paramètres d'application
- Configuration de la taille maximale de la requête
- Remplacement de la configuration du stockage au niveau du cluster
- Configuration de NLog
- Enregistrement des journaux du robot dans Elasticsearch
- Configuration des magasins d'informations d'identification
- Configuration de la clé de chiffrement par locataire
- Nettoyer la base de données Orchestrator
- Ignorer l’installation de la bibliothèque hôte
- Rotation des informations d’identification de stockage d’objets blob
- Désactivation de l'utilisation d'URL pré-signées lors du téléchargement de données vers le stockage Amazon S3
- Configuration de la sécurité de l'application de processus
- Configurer une authentification Kerberos avec l’authentification MSSQL de base pour Process Mining
- Bonnes pratiques et maintenance
- Résolution des problèmes
- Comment résoudre les problèmes des services lors de l'installation
- Comment réduire les autorisations d’un répertoire de sauvegarde NFS
- Comment désinstaller le cluster
- Comment nettoyer les artefacts hors ligne pour améliorer l'espace disque
- Comment effacer les données Redis
- Comment activer la journalisation Istio
- Comment nettoyer manuellement les journaux
- Sortie de Ceph du mode lecture seule
- Comment nettoyer les anciens journaux stockés dans le compartiment sf-logs
- Comment désactiver les journaux de diffusion pour AI Center
- Comment déboguer les installations d'Automation Suite ayant échoué
- Comment supprimer des images de l’ancien programme d’installation après la mise à niveau
- Comment désactiver le déchargement de la somme de contrôle txt
- Comment définir manuellement le niveau de journalisation d’ArgoCD sur Info
- Comment augmenter le stockage d’AI Center
- Comment générer la valeur pull_secret_value encodée pour les registres externes
- Comment résoudre les chiffrements faibles dans TLS 1.2
- Comment vérifier la version TLS
- Comment travailler avec les certificats
- Comment planifier la sauvegarde et la restauration des données Ceph
- Comment collecter les données d'utilisation de DU avec le magasin d'objets intégré au cluster (Ceph)
- Comment installer RKE2 SELinux dans des environnements isolés
- Comment nettoyer les anciennes sauvegardes différentielles sur un serveur NFS
- Comment déployer Insights dans un cluster compatible FIPS
- Comment migrer vers cgroup v2
- Comment récupérer l'authentification Kerberos après le redémarrage d'une machine virtuelle
- Comment transmettre une image Docker locale au registre intégré au cluster
- Comment exclure des compartiments de la sauvegarde
- Erreur lors du téléchargement du bundle
- L'installation hors ligne échoue en raison d'un fichier binaire manquant
- Disque Azure non marqué comme SSD
- Échec après la mise à jour du certificat
- Erreurs de validation du certificat TLS
- L'antivirus provoque des problèmes d'installation
- Automation Suite ne fonctionne pas après la mise à niveau du système d'exploitation
- Automation Suite requiert que backlog_wait_time soit défini sur 0
- L'installation du registre temporaire échoue sur RHEL 8.9
- Problème de redémarrage fréquent dans les déploiements d'espace de noms uipath lors des installations hors ligne
- Paramètres DNS non respectés par CoreDNS
- L’amorçage du registre intégré au cluster échoue en raison d’une mémoire insuffisante
- Les vérifications des prérequis échouent lorsque les projets modernes Document Understanding sont activés et qu’AI Center est désactivé
- Échec de la mise à niveau en raison d’un Ceph défectueux
- La mise à niveau échoue en raison d’objets classiques dans la base de données Orchestrator
- Cluster Ceph trouvé dans un état dégradé après une mise à niveau côte à côte
- La mise à niveau du service échoue pour Apps
- Délais d'attente de mise à niveau sur place
- La mise à niveau échoue dans les environnements hors ligne
- Le pod d'instantané-contrôleur-crds dans l'état CrashLoopBackOff après la mise à niveau
- La mise à niveau échoue en raison du remplacement des tailles de PVC Insights
- Échec de la mise à niveau en raison d’un nom d’hôte en majuscules
- Définition d'un délai d'expiration pour les portails de gestion
- L'authentification ne fonctionne pas après la migration
- kinit : Impossible de trouver le KDC pour le domaine <AD Domain> lors de l'obtention des informations d'identification initiales
- Kinit : Keytab ne contient aucune clé appropriée pour *** lors de l'obtention des informations d'identification initiales
- L'opération GSSAPI a échoué en raison d'un code de statut non valide
- Alarme reçue pour l'échec de la tâche Kerberos-tgt-update
- Fournisseur SSPI : serveur introuvable dans la base de données Kerberos
- La connexion a échoué pour l'utilisateur AD en raison d'un compte désactivé
- Échec de connexion à ArgoCD
- Impossible d'obtenir l'image du bac à sable
- Les pods ne s'affichent pas dans l'interface utilisateur ArgoCD
- Échec de la sonde Redis
- Le serveur RKE2 ne démarre pas
- ArgoCD passe à l'état Progression (Progressing) après la première installation
- Pod de serveur ArgoCD dans CrashLoopBackOff
- Atténuation manuelle de la politique réseau ArgoCD
- Métriques Ceph-rook manquantes dans les tableaux de bord de surveillance
- Discordance dans les erreurs signalées lors des vérifications de l'intégrité des diagnostics
- Configurer les requêtes et les limites de ressources pour les charges de travail créées par uipathctl
- Aucun problème sain en amont
- Démarrage de Redis bloqué par un antivirus
- Les pods AI Center et Document Understanding ne démarrent pas avec la vérification du certificat TLS activée
- Fluentd n’exporte pas les journaux dans les environnements IPv6
- Studio Desktop ne peut pas charger les connecteurs et activités Integration Service
- Document Understanding n'est pas affiché sur la barre de gauche d'Automation Suite
- État Échec (Failed) lors de la création d'une session de labellisation des données
- État Échec (Failed) lors de la tentative de déploiement d'une compétence ML
- La tâche de migration échoue dans ArgoCD
- La reconnaissance de l'écriture manuscrite avec l'Extracteur de formulaires intelligents (Intelligent Form Extractor) ne fonctionne pas
- Exécution de la haute disponibilité avec Process Mining
- Échec de l’ingestion de Process Mining lors de la connexion à l’aide de Kerberos
- Impossible de se connecter à la base de données AutomationSuite_ProcessMining_Authentication à l'aide d'une chaîne de connexion au format pyodbc
- L'installation d'airflow échoue avec sqlalchemy.exc.ArgumentError: impossible d'analyser l'URL rfc1738 de la chaîne ''
- Comment ajouter une règle de table d'adresse IP pour utiliser le port SQL Server 1433
- Le certificat Automation Suite n'est pas approuvé depuis le serveur sur lequel CData Sync est en cours d'exécution
- Exécution de l'outil de diagnostic
- Utilisation du pack d'assistance Automation Suite
- Explorer les journaux
Démarrez et arrêtez les nœuds en toute sécurité dans Automation Suite, couvrant le comportement de démarrage et d’arrêt manuels et automatiques.
Cette page explique le comportement de démarrage et d’arrêt manuels et automatiques d’Automation Suite.
Vous devez toujours procéder en arrêtant un nœud, en effectuant l'opération requise, en attendant que le nœud soit sain, puis en arrêtant l'autre nœud pour effectuer la même opération.
Le tableau suivant décrit différents scénarios que vous pouvez rencontrer lors de l’arrêt de services de cluster ou de nœuds. Le tableau fournit des actions détaillées que vous devez effectuer pour chaque situation, ainsi que des conseils sur la compréhension du comportement attendu en réponse à ces actions.
| Scénario | Action | Comportement attendu |
|---|---|---|
| Arrêter les services de cluster sur un nœud sans désactiver le nœud, à des fins de maintenance ou pour toute autre raison. |
| Dans un scénario haute disponibilité, la plupart des services resteront actifs. Le nœud devrait démarrer sans aucun problème et tous les services en panne devraient redémarrer. |
| Arrêt de tous les services du cluster sans désactiver les nœuds, à des fins de maintenance ou pour toute autre raison. |
| Les services deviendront indisponibles. Les nœuds devraient démarrer sans problème. |
| Arrêt de tous les nœuds. | Si votre portail de gestion de l'hyperviseur (tel que VMware, AWS) permet aux services de s'arrêter en douceur sans mettre fin à la machine, effectuez un arrêt normal. Par défaut, le sous-système système autorise une période d'arrêt des services avant leur arrêt forcé. Cependant, si votre système écrase les temps d'arrêt configurés, cela peut interférer avec un arrêt en douceur. Par exemple, sur AWS, la plate-forme peut forcer l'arrêt d'une machine virtuelle après deux minutes. Les services doivent donc être arrêtés manuellement, car un drainage de nœud peut prendre jusqu'à 5 minutes (il s'agit d'une exigence pour un arrêt en douceur). | Si l’arrêt est en douceur, les nœuds devraient démarrer sans problème. Si le cluster a été arrêté pendant plus de 6 heures et que l'authentification Kerberos est configurée, vous devrez peut-être renouveler les tickets Kerberos après le redémarrage. Pour plus de détails, consultez Récupération de l'authentification Kerberos après le redémarrage de la machine virtuelle. |
| Arrêt d'un nœud individuel. | Si votre portail de gestion de l'hyperviseur (tel que VMware, AWS) permet aux services de s'arrêter en douceur sans mettre fin à la machine, effectuez un arrêt normal. Par défaut, le sous-système système autorise une période d'arrêt des services avant leur arrêt forcé. Cependant, si votre système écrase les temps d'arrêt configurés, cela peut interférer avec un arrêt en douceur. Par exemple, sur AWS, la plate-forme peut forcer l'arrêt d'une machine virtuelle après deux minutes. Les services doivent donc être arrêtés manuellement, car un drainage de nœud peut prendre jusqu'à 5 minutes (il s'agit d'une exigence pour un arrêt en douceur). | Si le processus d'arrêt n'est pas forcé, le nœud devrait redémarrer sans aucun problème. |
| Mettre fin de force un nœud de serveur. | Non Applicable. | Dans la plupart des cas, le nœud démarrera, mais il pourra y avoir des problèmes avec certains services qui utilisent des données persistantes. Bien que ces problèmes soient généralement récupérables, la configuration de sauvegardes est fortement recommandée. Le pod Insights ne redémarrera pas tant que le nœud d'origine n'est pas de nouveau en ligne, afin d'éviter toute perte de données potentielle. Si le nœud n'est pas récupérable, contactez l'équipe d'assistance. |
Comportement d'arrêt
Lors de l’arrêt, systemd arrête les services dans l’ordre dans lequel ils ont été démarrés. Étant donné que le service node-drain comporte la directive After=rke2-server.service ou After=rke2-agent.service, il exécute sa séquence d’arrêt avant l’arrêt de rke2-service. Cela signifie que dans un système correctement configuré, l’arrêt correct du nœud est une opération sécurisée.
Redémarrage manuel
Si vous prévoyez d’arrêter le service RKE2 et de redémarrer la machine, procédez comme suit :
-
Pour vous assurer que le cluster est sain lors de l'exécution de l'activité de maintenance du nœud, vous devez drainer les charges de travail exécutées sur ce nœud vers d’autres nœuds. Pour drainer le nœud, exécutez la commande suivante :
systemctl stop node-drain.servicesystemctl stop node-drain.service -
Arrêtez le processus Kubernetes sur le nœud, selon le type de nœud:
- Sur un nœud de serveur:
systemctl stop rke2-serversystemctl stop rke2-server - Sur les nœuds d'agent:
systemctl stop rke2-agentsystemctl stop rke2-agent
- Sur un nœud de serveur:
-
Mettez fin aux services rke2 et Containerd et tous les processus enfants :
rke2-killall.shrke2-killall.sh
Pour télécharger le script rke2-killall.sh , reportez-vous à la section Liens de téléchargement des packages d’installation.
Comportement de démarrage
Le rke2-service commence et est suivi de node-drainer et de node-uncordon. node-drainer n’effectue aucune action au démarrage et renvoie simplement la confirmation que le service est actif.
Le node-uncordon ne s’exécute qu’une fois et démarre /opt/node-drain.sh nodestart, ce qui déboucle le nœud. Dans le cadre de la procédure de drainage qui a lieu à l’arrêt, cela boucle le nœud, ce qui le rend non planifiable. Cet état persiste au démarrage du service rke2. Le nœud doit donc être débouclé après le redémarrage de rke2-service.
Démarrage manuel
Le service démarre automatiquement avec Automation Suite. Cependant, si rke2-service était arrêté manuellement, vous devez redémarrer le service en exécutant les commandes suivantes :
-
Démarrez le processus Kubernetes sur le nœud, selon le type de nœud:
- Sur un nœud de serveur:
systemctl start rke2-serversystemctl start rke2-server - Sur les nœuds d'agent:
systemctl start rke2-agentsystemctl start rke2-agent
- Sur un nœud de serveur:
-
Une fois le service
rke2démarré, débouclez le nœud pour vous assurer que Kubernetes peut désormais planifier des charges de travail sur ce nœud :systemctl restart node-uncordonsystemctl restart node-uncordon -
Une fois le nœud démarré, vous devez vider le nœud :
systemctl start node-drain.servicesystemctl start node-drain.serviceImportant :Si vous ignorez cette étape, le service Kubelet pourrait s’arrêter de manière incorrecte si le système est redémarré.
Correction des nœuds du cluster
Lors du correctif ou du redémarrage des nœuds de serveur, l'ordre dans lequel vous appliquez les modifications affecte directement la stabilité du cluster.
Vérifications avant le correctif
Avant de manipuler un nœud, confirmez que le cluster est sain:
-
Confirmez que les trois membres etcd sont sains:
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 -
Vérifiez les boucles de plantage sur n'importe quel nœud:
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" -
Vérifiez qu’il existe un instantané etcd récent:
ls -lth /var/lib/rancher/rke2/server/db/snapshots/ | head -5ls -lth /var/lib/rancher/rke2/server/db/snapshots/ | head -5
Ne commencez pas à corriger si un nœud est déjà en boucle de plantage ou si les vérifications de l’état etcd échouent. Résolvez l’instabilité avant de continuer.
Identifier le nœud d’amorçage
Le nœud d’amorçage est généralement le responsable etcd actuel. Pour l'identifier, exécutez la commande suivante et recherchez 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
Ordre des correctifs
Corrigez toujours d'abord le nœud d'amorçage, puis les nœuds secondaires un à la fois.
Le fait de corriger le nœud d’amorçage garantit d’abord que lorsqu’il tombe en panne, les deux nœuds secondaires maintiennent le quorum et électionnent un nouveau responsable. Le nœud d'amorçage rejoint ensuite en tant que suivi dans un état propre. Le fait de corriger les nœuds secondaires en premier et de laisser le nœud d’amorçage pour la dernière fois peut provoquer une instabilité plus importante si le nœud d’amorçage ne parvient pas à se rejoindre correctement.
Après la correction et le redémarrage de chaque nœud, confirmez qu’il est entièrement de retour avant de passer au nœud suivant:
-
Vérifiez que le statut du nœud est
Ready:kubectl get nodeskubectl get nodes -
Confirmez que les trois membres etcd sont sains:
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 -
Recherchez les erreurs dans les journaux du serveur RKE2:
journalctl -u rke2-server -n 30journalctl -u rke2-server -n 30
Mises à niveau du noyau
Lors de l’exécution d’une mise à niveau du noyau, effacez le magasin d’instantanés du conteneur après avoir exécuté rke2-killall.sh et avant d’appliquer la mise à niveau du noyau. Cela empêche la corruption de l’état du conteneur sur tout nœud, quel que soit l’ordre des correctifs.
Fichiers créés lors de l’installation
Les fichiers d’unité suivants sont créés lors de l’installation :
rke2-server.service(serveur uniquement): démarre lerke2-server, ce qui démarre le nœud de serveur.rke2-agent.service(agent uniquement): démarre lerke2-agent, ce qui démarre le nœud d’agent.node-drain.service- Utilisé au moment de l'arrêt. Exécuté avant d’arrêterrke2-agentourke2-serveret effectue un drainage. A un délai d’attente de 300 secondes.node-uncordon.service- Utilisé au démarrage pour déboucler un nœud.var-lib-kubelet.mount- Généré automatiquement par le générateur fstab.var-lib-rancher-rke2-server-db.mount- Généré automatiquement par le générateur fstab.var-lib-rancher.mount- Généré automatiquement par le générateur fstab.
Il n’y a pas de dépendances solides entre les fichiers d’unités. En revanche, node-drain et node-uncordon ont la directive After=rke2-server.service ou After=rke2-agent.service. Cela signifie que ces services démarreront après rke2-server.service.