- Vue d'ensemble (Overview)
- Prérequis
- Installation
- Questions et réponses : modèles de déploiement
- Configuration des machines
- Configurer l'équilibreur de charge
- Configuration du DNS
- Configuration de Microsoft SQL Server
- Configuration des certificats
- Installation de production en ligne multi-nœuds compatible haute disponibilité
- Installation de production hors ligne multi-nœuds compatible haute disponibilité
- Téléchargement des packages d'installation
- install-uipath.sh parameters
- Activation du module complémentaire Redis High Availability Add-on pour le cluster
- Fichier de configuration de Document Understanding
- Ajout d'un nœud d'agent dédié avec prise en charge GPU
- Connexion de l'application Task Mining
- Ajout d'un nœud d'agent dédié pour Task Mining
- Post-installation
- Administration du cluster
- Gestion des produits
- Gérer le cluster dans ArgoCD
- Configuration du serveur NFS externe
- Automatisé : activation de la sauvegarde sur le cluster
- Automatisé : Désactivation de la sauvegarde sur le cluster
- Automatisé, en ligne : restauration du cluster
- Manuel, hors ligne : Restauration du cluster
- Manuel : Activation de la sauvegarde sur le cluster
- Manuel : Activation de la sauvegarde sur le cluster
- Manuel en ligne : Restauration du cluster
- Manuel, hors ligne : Restauration du cluster
- Configuration supplémentaire
- Migration d'un magasin d'objets d'un volume persistant vers des disques bruts
- Manuel : migration d’un pool de données Ceph du type répliqué vers le type codé à effacement (Erasure-coded)
- Automatisé : Migration du pool de données Ceph du type répliqué vers le type codé par effacement
- Surveillance et alerte
- Migration et mise à niveau
- Automatisée : mise à niveau en ligne
- Automatisée : mise à niveau hors ligne
- Manuel : mise à niveau en ligne
- Manuel : mise à niveau hors ligne
- Annulation en cas d'erreur
- Migration d'un disque physique Longhorn vers LVM
- Migration de Canal vers Cilium CNI
- Rétrogradation de Ceph de la version 16.2.6 à la version 15.2.9
- Options de migration :
- Étape 1 : Déplacement des données d'organisation Identity d'installation autonome vers Automation Suite
- Étape 2 : Restauration de la base de données du produit autonome
- Étape 3 : Sauvegarder la base de données de la plate-forme dans Automation Suite
- Étape 4 : Fusion des organisations dans Automation Suite
- Étape 5 : Mise à jour des chaînes de connexion du produit migré
- Étape 6 : migration de la version autonome d’Insights
- Étape 7 : suppression du locataire par défaut
- B) Migration à locataire unique
- Configuration spécifique au produit
- Bonnes pratiques et maintenance
- Résolution des problèmes
- Comment résoudre les problèmes des services lors de l'installation
- 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
- 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 nettoyer automatiquement les instantanés Longhorn
- Comment désactiver le déchargement de la somme de contrôle txt
- Comment résoudre les chiffrements faibles dans TLS 1.2
- Impossible d'exécuter une installation hors ligne sur le système d'exploitation RHEL 8.4
- Erreur lors du téléchargement du bundle
- L'installation hors ligne échoue en raison d'un fichier binaire manquant
- Problème de certificat dans l'installation hors ligne
- La première installation échoue lors de la configuration de Longhorn
- Erreur de validation de la chaîne de connexion SQL
- Échec de la vérification des prérequis pour le module selinux iscsid
- Disque Azure non marqué comme SSD
- Échec après la mise à jour du certificat
- 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 1
- Volume impossible à monter car il n'est pas prêt pour les charges de travail
- RKE2 échoue lors de l'installation et de la mise à niveau
- Échec du chargement ou du téléchargement des données dans l'objectstore
- Le redimensionnement de la PVC ne répare pas Ceph
- Échec du redimensionnement du PVC objectstore
- Rook Ceph ou pod Looker bloqué dans l'état Init
- Erreur de pièce jointe du volume Ensembles d'états.
- Échec de la création de volumes persistants
- Correctif de récupération du stockage
- La sauvegarde a échoué en raison de l’erreur TropInstantanés (TooManySnapshots)
- Toutes les répliques Longhorn sont défaillantes
- Définition d'un délai d'expiration pour les portails de gestion
- Mettre à jour les connexions du répertoire sous-jacent
- Impossible de se connecter 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 de l'erreur suivante : un code d'état non valide a été fourni (les informations d'identification du client ont été révoquées).
- 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 <ADDOMAIN><aduser>.Raison : Le compte est 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
- Secret introuvable dans l'espace de noms UiPath
- Après l'installation initiale, l'application ArgoCD est passée à l'état Progression (Progressing)
- Pods MongoDB en mode CrashLoopBackOff ou enregistrement PVC en attente après suppression
- INCOHÉRENCE INATTENDUE ; EXÉCUTER fsck MANUELLEMENT
- MongoDB ou applications métier dégradées après la restauration du cluster
- L’opérateur d’auto-guérison et le référentiel Sf-k8-utils manquants
- Services défectueux après la restauration ou la restauration du cluster
- Le pod RabbitMQ est bloqué dans CrashLoopBackOff
- Prometheus en état CrashloopBackoff avec erreur de mémoire insuffisante (OOM)
- Métriques Ceph-rook manquantes dans les tableaux de bord de surveillance
- Les pods ne peuvent pas communiquer avec le nom de domaine complet dans un environnement proxy
- 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
- Utilisation de l'outil de diagnostic d'Automation Suite
- Utilisation du pack d'assistance Automation Suite
- Explorer les journaux

Guide d'installation d'Automation Suite
Manuel : migration d’un pool de données Ceph du type répliqué vers le type codé à effacement (Erasure-coded)
/ceph-data
sur le nœud Kubernetes server0
.
server0
).
export ROOK_CEPH_EXPORT_PATH="/ceph-data"
export ROOK_CEPH_EXPORT_PATH="/ceph-data"
Pour afficher l'espace de stockage utilisé par les objets dans le cluster Ceph, exécutez la commande suivante :
ceph_objects_bytes=$(kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph status --format json | jq -r '.pgmap.data_bytes')
numfmt --to=iec-i $ceph_objects_bytes
ceph_objects_bytes=$(kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph status --format json | jq -r '.pgmap.data_bytes')
numfmt --to=iec-i $ceph_objects_bytes
Pour préparer les outils Ceph à utiliser le chemin sélectionné à l'étape 1, procédez comme suit :
-
Désactiver l'autoréparation pour
rook-ceph-object-store
:kubectl -n argocd patch application rook-ceph-operator --type=json -p '[{"op":"replace","path":"/spec/syncPolicy/automated/selfHeal","value":false}]' kubectl -n argocd patch application rook-ceph-object-store --type=json -p '[{"op":"replace","path":"/spec/syncPolicy/automated/selfHeal","value":false}]' kubectl -n argocd patch application fabric-installer --type=json -p '[{"op":"replace","path":"/spec/syncPolicy/automated/selfHeal","value":false}]'
kubectl -n argocd patch application rook-ceph-operator --type=json -p '[{"op":"replace","path":"/spec/syncPolicy/automated/selfHeal","value":false}]' kubectl -n argocd patch application rook-ceph-object-store --type=json -p '[{"op":"replace","path":"/spec/syncPolicy/automated/selfHeal","value":false}]' kubectl -n argocd patch application fabric-installer --type=json -p '[{"op":"replace","path":"/spec/syncPolicy/automated/selfHeal","value":false}]' -
Modifier le déploiement des outils Ceph pour monter
${ROOK_CEPH_EXPORT_PATH}
sur le nœud kubernetes : server0kubectl -n rook-ceph patch deploy rook-ceph-tools --type='json' -p='[{"op": "add", "path":"/spec/template/spec/nodeName", "value": "server0"},{"op": "add", "path":"/spec/template/spec/volumes/2", "value": {"name":"ceph-export", "hostPath": {"path": "'${ROOK_CEPH_EXPORT_PATH}'", "type":"Directory"} }}, {"op":"add", "path": "/spec/template/spec/containers/0/volumeMounts/2", "value": {"name": "ceph-export", "mountPath": "'${ROOK_CEPH_EXPORT_PATH}'"}},{"op": "remove", "path": "/spec/template/spec/containers/0/resources/limits"}]' kubectl -n rook-ceph rollout status deploy rook-ceph-tools
kubectl -n rook-ceph patch deploy rook-ceph-tools --type='json' -p='[{"op": "add", "path":"/spec/template/spec/nodeName", "value": "server0"},{"op": "add", "path":"/spec/template/spec/volumes/2", "value": {"name":"ceph-export", "hostPath": {"path": "'${ROOK_CEPH_EXPORT_PATH}'", "type":"Directory"} }}, {"op":"add", "path": "/spec/template/spec/containers/0/volumeMounts/2", "value": {"name": "ceph-export", "mountPath": "'${ROOK_CEPH_EXPORT_PATH}'"}},{"op": "remove", "path": "/spec/template/spec/containers/0/resources/limits"}]' kubectl -n rook-ceph rollout status deploy rook-ceph-tools -
Autoriser les pods d'outils à écrire à l'intérieur de
${ROOK_CEPH_EXPORT_PATH}
chmod 777 ${ROOK_CEPH_EXPORT_PATH}
chmod 777 ${ROOK_CEPH_EXPORT_PATH}
-
Bloquer le trafic venant de l'espace de noms
rook-ceph
à partir de tout autre espace de noms à l'exception de l'espace de nomsrook-ceph
:kubectl apply -f - <<EOF kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata: namespace: rook-ceph name: block-rook-ceph-from-other-ns spec: podSelector: matchLabels: ingress: - from: - podSelector: {} EOF
kubectl apply -f - <<EOF kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata: namespace: rook-ceph name: block-rook-ceph-from-other-ns spec: podSelector: matchLabels: ingress: - from: - podSelector: {} EOF -
Redémarrez le déploiement de RGW pour fermer les connexions déjà établies à partir d'autres espaces de noms :
for rgw_deploy in $(kubectl -n rook-ceph get deploy -l app=rook-ceph-rgw -o name);do kubectl -n rook-ceph rollout restart "${rgw_deploy}" kubectl -n rook-ceph rollout status "${rgw_deploy}" done
for rgw_deploy in $(kubectl -n rook-ceph get deploy -l app=rook-ceph-rgw -o name);do kubectl -n rook-ceph rollout restart "${rgw_deploy}" kubectl -n rook-ceph rollout status "${rgw_deploy}" done
Pour afficher le nombre d'objets de cluster, exécutez la commande suivante :
BEFORE_MIGRATION_DATA_POOL_OBJECT_COUNT=$(kubectl -n rook-ceph exec deploy/rook-ceph-tools -- rados df --format json | jq -r --arg poolName "rook-ceph.rgw.buckets.data" '.pools[] | select(.name==$poolName).num_objects')
echo "BEFORE_MIGRATION_DATA_POOL_OBJECT_COUNT=${BEFORE_MIGRATION_DATA_POOL_OBJECT_COUNT}"
BEFORE_MIGRATION_DATA_POOL_OBJECT_COUNT=$(kubectl -n rook-ceph exec deploy/rook-ceph-tools -- rados df --format json | jq -r --arg poolName "rook-ceph.rgw.buckets.data" '.pools[] | select(.name==$poolName).num_objects')
echo "BEFORE_MIGRATION_DATA_POOL_OBJECT_COUNT=${BEFORE_MIGRATION_DATA_POOL_OBJECT_COUNT}"
Il est recommandé de revérifier le nombre d'objets après la migration pour s'assurer qu'aucune perte de données ne s'est produite.
Pour exporter le pool de données Ceph, exécutez la commande suivante :
nohup kubectl -n rook-ceph exec deploy/rook-ceph-tools -- rados -p 'rook-ceph.rgw.buckets.data' export --workers 5 ${ROOK_CEPH_EXPORT_PATH}/ceph-data-pool >> /tmp/ceph-data-pool-export.log 2>&1 &
wait $!
if [[ $? -eq 0 && -f ${ROOK_CEPH_EXPORT_PATH}/ceph-data-pool ]]; then
echo "Export ran successfully"
else
echo "Error while running export"
fi
nohup kubectl -n rook-ceph exec deploy/rook-ceph-tools -- rados -p 'rook-ceph.rgw.buckets.data' export --workers 5 ${ROOK_CEPH_EXPORT_PATH}/ceph-data-pool >> /tmp/ceph-data-pool-export.log 2>&1 &
wait $!
if [[ $? -eq 0 && -f ${ROOK_CEPH_EXPORT_PATH}/ceph-data-pool ]]; then
echo "Export ran successfully"
else
echo "Error while running export"
fi
rook-ceph
, exécutez la commande suivante :
kubectl -n rook-ceph scale --replicas=0 deployment/rook-ceph-operator
kubectl -n rook-ceph scale --replicas=0 deployment/rook-ceph-operator
Pour recréer le pool codé par effacement, exécutez la commande suivante :
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd pool rm rook-ceph.rgw.buckets.data rook-ceph.rgw.buckets.data --yes-i-really-really-mean-it --yes-i-really-really-mean-it-not-faking
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd crush rule rm rook-ceph.rgw.buckets.data
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd erasure-code-profile set rook-ceph_ecprofile k=2 m=1 crush-failure-domain=host
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd pool create rook-ceph.rgw.buckets.data erasure rook-ceph_ecprofile
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd pool set rook-ceph.rgw.buckets.data compression_mode none
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd pool application enable rook-ceph.rgw.buckets.data rook-ceph-rgw --yes-i-really-mean-it
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd pool rm rook-ceph.rgw.buckets.data rook-ceph.rgw.buckets.data --yes-i-really-really-mean-it --yes-i-really-really-mean-it-not-faking
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd crush rule rm rook-ceph.rgw.buckets.data
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd erasure-code-profile set rook-ceph_ecprofile k=2 m=1 crush-failure-domain=host
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd pool create rook-ceph.rgw.buckets.data erasure rook-ceph_ecprofile
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd pool set rook-ceph.rgw.buckets.data compression_mode none
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd pool application enable rook-ceph.rgw.buckets.data rook-ceph-rgw --yes-i-really-mean-it
Pour importer les données dans le pool de données, exécutez la commande suivante :
nohup kubectl -n rook-ceph exec deploy/rook-ceph-tools -- rados -p 'rook-ceph.rgw.buckets.data' import --workers 5 ${ROOK_CEPH_EXPORT_PATH}/ceph-data-pool >> /tmp/ceph-data-pool-import.log 2>&1 &
wait $!
if [[ $? -eq 0 ]]; then
echo "Import ran successfully"
else
echo "Error while running import"
fi
nohup kubectl -n rook-ceph exec deploy/rook-ceph-tools -- rados -p 'rook-ceph.rgw.buckets.data' import --workers 5 ${ROOK_CEPH_EXPORT_PATH}/ceph-data-pool >> /tmp/ceph-data-pool-import.log 2>&1 &
wait $!
if [[ $? -eq 0 ]]; then
echo "Import ran successfully"
else
echo "Error while running import"
fi
Pour vérifier les données chargées, exécutez la commande suivante :
try=120
return_code=1
for index in $(seq 0 "${try}"); do
AFTER_MIGRATION_DATA_POOL_OBJECT_COUNT=$(kubectl -n rook-ceph exec deploy/rook-ceph-tools -- rados df --format json | jq -r --arg poolName "rook-ceph.rgw.buckets.data" '.pools[] | select(.name==$poolName).num_objects')
if [[ $AFTER_MIGRATION_DATA_POOL_OBJECT_COUNT -eq $BEFORE_MIGRATION_DATA_POOL_OBJECT_COUNT ]]; then
return_code=0
break
fi
[[ $index -eq $try ]] || sleep 5
done
if [[ $return_code -eq 0 ]]; then
echo "Found equal object count(${BEFORE_MIGRATION_DATA_POOL_OBJECT_COUNT})"
else
echo "Found difference in object count for pool before(${BEFORE_MIGRATION_DATA_POOL_OBJECT_COUNT}) and after(${AFTER_MIGRATION_DATA_POOL_OBJECT_COUNT})"
echo "Please raise a support ticket with uipath to complete the migration"
fi
try=120
return_code=1
for index in $(seq 0 "${try}"); do
AFTER_MIGRATION_DATA_POOL_OBJECT_COUNT=$(kubectl -n rook-ceph exec deploy/rook-ceph-tools -- rados df --format json | jq -r --arg poolName "rook-ceph.rgw.buckets.data" '.pools[] | select(.name==$poolName).num_objects')
if [[ $AFTER_MIGRATION_DATA_POOL_OBJECT_COUNT -eq $BEFORE_MIGRATION_DATA_POOL_OBJECT_COUNT ]]; then
return_code=0
break
fi
[[ $index -eq $try ]] || sleep 5
done
if [[ $return_code -eq 0 ]]; then
echo "Found equal object count(${BEFORE_MIGRATION_DATA_POOL_OBJECT_COUNT})"
else
echo "Found difference in object count for pool before(${BEFORE_MIGRATION_DATA_POOL_OBJECT_COUNT}) and after(${AFTER_MIGRATION_DATA_POOL_OBJECT_COUNT})"
echo "Please raise a support ticket with uipath to complete the migration"
fi
Pour annuler les modifications temporaires, exécutez la commande suivante :
kubectl -n argocd patch application rook-ceph-operator --type=json -p '[{"op":"replace","path":"/spec/syncPolicy/automated/selfHeal","value":true}]'
kubectl -n argocd patch application rook-ceph-object-store --type=json -p '[{"op":"replace","path":"/spec/syncPolicy/automated/selfHeal","value":true}]'
kubectl -n argocd patch application fabric-installer --type=json -p '[{"op":"replace","path":"/spec/syncPolicy/automated/selfHeal","value":true}]'
kubectl -n rook-ceph scale --replicas=1 deployment/rook-ceph-operator
kubectl -n rook-ceph patch deploy rook-ceph-tools --type='json' -p='[{"op": "remove", "path":"/spec/template/spec/nodeName"},{"op": "remove", "path":"/spec/template/spec/volumes/2"}, {"op":"remove", "path": "/spec/template/spec/containers/0/volumeMounts/2"},{"op": "add", "path": "/spec/template/spec/containers/0/resources/limits", "value": {"memory": "256Mi"}}]'
kubectl -n rook-ceph delete NetworkPolicy block-rook-ceph-from-other-ns
kubectl -n argocd patch application rook-ceph-operator --type=json -p '[{"op":"replace","path":"/spec/syncPolicy/automated/selfHeal","value":true}]'
kubectl -n argocd patch application rook-ceph-object-store --type=json -p '[{"op":"replace","path":"/spec/syncPolicy/automated/selfHeal","value":true}]'
kubectl -n argocd patch application fabric-installer --type=json -p '[{"op":"replace","path":"/spec/syncPolicy/automated/selfHeal","value":true}]'
kubectl -n rook-ceph scale --replicas=1 deployment/rook-ceph-operator
kubectl -n rook-ceph patch deploy rook-ceph-tools --type='json' -p='[{"op": "remove", "path":"/spec/template/spec/nodeName"},{"op": "remove", "path":"/spec/template/spec/volumes/2"}, {"op":"remove", "path": "/spec/template/spec/containers/0/volumeMounts/2"},{"op": "add", "path": "/spec/template/spec/containers/0/resources/limits", "value": {"memory": "256Mi"}}]'
kubectl -n rook-ceph delete NetworkPolicy block-rook-ceph-from-other-ns
Vous devez maintenant vous assurer de synchroniser la configuration et l’état réel. Pour ce faire, mettez à jour la configuration d'ArgoCD en exécutant la commande suivante :
kubectl -n argocd get application fabric-installer -o json | jq 'if ([.spec.source.helm.parameters[].name] | index ("global.rook.dataPoolType")) == null then .spec.source.helm.parameters += [{"name": "global.rook.dataPoolType" , "value": "erasure-coded"}] else (.spec.source.helm.parameters[] | select(.name == "global.rook.dataPoolType").value) |= "erasure-coded" end' | kubectl apply -f -
kubectl -n argocd get application fabric-installer -o json | jq 'if ([.spec.source.helm.parameters[].name] | index ("global.rook.dataPoolType")) == null then .spec.source.helm.parameters += [{"name": "global.rook.dataPoolType" , "value": "erasure-coded"}] else (.spec.source.helm.parameters[] | select(.name == "global.rook.dataPoolType").value) |= "erasure-coded" end' | kubectl apply -f -
- Étape 1 : sélection d'un chemin pour les objets Ceph
- Étape 2 : Préparation des outils Ceph pour utiliser le chemin
- Étape 3 : bloquer l'accès à l'espace de noms
rook-ceph
à partir d'autres espaces de noms - Étape 4 : Affichage du nombre d'objets de cluster
- Étape 5 : Exportation du pool de données Ceph
- Étape 6 : réduction de l'opérateur
rook-ceph
- Étape 7 : recréation du pool codé à effacer
- Étape 8 : Importation de données dans le pool de données
- Étape 9 : Vérification des données chargées
- Étape 10 : Annulation des modifications temporaires
- Étape 11 : Mise à jour de la configuration d'ArgoCD