- Überblick
- Anforderungen
- Installation
- Nach der Installation
- Migration und Upgrade
- Aktualisieren der Automation Suite auf EKS/AKS
- Schritt 1: Verschieben der Identitätsorganisationsdaten von einer eigenständigen in die Automation Suite
- Schritt 2: Wiederherstellen der eigenständigen Produktdatenbank
- Schritt 3: Sichern der Plattformdatenbank in der Automation Suite
- Schritt 4: Zusammenführen von Organisationen in der Automation Suite
- Schritt 5: Aktualisieren der migrierten Produktverbindungszeichenfolgen
- Schritt 6: Migrieren des eigenständigen Orchestrators
- Schritt 7: Migrieren von eigenständigen Insights
- Schritt 8: Migrieren des eigenständigen Test Managers
- Schritt 9: Löschen des Standardmandanten
- Durchführen der Migration eines einzelnen Mandanten
- Migrieren von der Automation Suite unter Linux zur Automation Suite unter EKS/AKS
- Überwachung und Warnungen
- Clusterverwaltung
- Produktspezifische Konfiguration
- Konfigurieren von Orchestrator-Parametern
- Orchestrator-appSettings
- Konfigurieren von AppSettings
- Konfigurieren der maximalen Anforderungsgröße
- Überschreiben der Speicherkonfiguration auf Clusterebene
- Konfigurieren von Anmeldeinformationsspeichern
- Konfigurieren der Verwendung von einem Verschlüsselungsschlüssel pro Mandant
- Bereinigen der Orchestrator-Datenbank
- Fehlersuche und ‑behebung
- Das Sicherungssetup funktioniert nicht, da die Verbindung mit Azure Government fehlgeschlagen ist
- Hängende Pods im uipath-Namespace bei Aktivierung von benutzerdefinierten Knoten-Markierungen
- Automation Hub und Apps können mit Proxy-Setup nicht gestartet werden
- Pods können nicht mit FQDN in einer Proxy-Umgebung kommunizieren
- SQL-Verbindungszeichenfolge der Testautomatisierung wird ignoriert
- EKS-Sicherung aufgrund der Velero-Version
- Die Velero-Sicherung schlägt mit dem Fehler „FehlgeschlageneValidierung“ fehl
- Beim Zugriff auf den FQDN wird der Fehler „RBAC-Zugriff verweigert“ zurückgegeben
Automation Suite in der EKS/AKS-Installationsanleitung
Sie können von der Automation Suite, die auf einer Linux-Maschine bereitgestellt wird, zur Automation Suite auf EKS/AKS migrieren. Dazu müssen Sie Ihre Daten mithilfe von uipathctl von einer Automation Suite-Variante in eine andere verschieben.
Einer der Vorteile dieses Migrationsprozesses besteht darin, dass Sie versuchen können, ihn mehrmals durchzuführen, ohne dass sich dies auf Ihren vorhandenen Cluster auswirkt.
Mit dieser Migrationsoption können Sie von der Automation Suite unter Linux zu einer neuen Installation der Automation Suite auf EKS/AKS wechseln.
Die folgenden Migrationsszenarien werden nicht unterstützt:
- Die Migration von der Automation Suite unter Linux zu einer vorhandenen Installation der Automation Suite unter EKS/AKS wird derzeit nicht unterstützt.
- Die Migration einer Automation Suite im EKS/AKS-Cluster zu einer anderen Automation Suite im EKS/AKS-Cluster wird derzeit nicht unterstützt.
Anforderungen
Um von der Automation Suite unter Linux zur Automation Suite unter EKS/AKS zu migrieren, müssen die folgenden Anforderungen erfüllt sein:
- Sie müssen eine Konnektivität zwischen den beiden Umgebungen herstellen.
- In Ihrem Quellcluster muss ein externer Objektspeicher konfiguriert sein. Wenn Sie clusterinternen Speicher verwenden, finden Sie weitere Informationen unter Migrieren des clusterinternen Objectstores zum externen Objectstore.
- Sie müssen dem Quellcluster Lese-/Schreibberechtigungen für den Zielobjektspeicher gewähren. Wenn persistente Volumes (PVs) kopiert werden, schreibt der Quellcluster seine Daten in den Zielobjektspeicher, während der Zielcluster die Daten aus dem Objektspeicher abruft und die entsprechenden PVs erstellt.
- Die Version Ihrer Automation Suite unter Linux muss 2022.10 oder höher sein.
- Nur-Offline-Anforderungen: Sie müssen den Zielcluster hydratisieren.
Prozessübersicht
| Nr. | Migrationsschritt |
|---|---|
| 1. | Obligatorisch. Laden Sie uipathctl herunter. Anweisungen zum Herunterladen finden Sie unter uipathctl. |
| 2. | Obligatorisch. Laden Sie versions.json herunter. Anweisungen zum Herunterladen finden Sie unter versions.json . |
| 3. | Bereiten Sie die Docker-Images für den Quell- sowie den Zielcluster vor. Optional. Wenn Ihre Bereitstellung offline ist oder wenn Sie eine private OCI-Registrierung verwenden, stellen Sie sicher, dass die erforderlichen Bilder verfügbar sind. |
| 4. | Bereiten Sie den Zielcluster vor:
|
| 5. | Führen Sie die Migration durch und verschieben Sie die Daten. Die Migration führt Pods sowohl auf dem Quell- als auch auf dem Zielcluster aus. Der für den Quellcluster konfigurierte externe Objektspeicher, insbesondere der Plattform-Bucket, wird als Zwischenspeicherort für die Migration verwendet. Quellcluster:
Zielcluster:
|
| 6. |
|
Datenmigration und Zuständigkeiten
| Daten | Migrationsmechanismus | |
|---|---|---|
| Status | Verantwortung | |
| SQL | Beibehalten Sie haben zwei Optionen:
| Kunde |
| Docker-Registrierung | Nicht migriert registry.uipath.com für den Zielcluster verwenden, sind keine weiteren Schritte erforderlich.) | Kunde |
| FQDN | Erforderlich Sie müssen einen neuen FQDN für den neuen Cluster auswählen. Optional können Sie bei Bedarf zum vorherigen FQDN zurückkehren. | Kunde |
| Zertifikat | Nicht migriert Sie müssen Zertifikate als Teil der neuen Clusterinstallation mitbringen. | Kunde |
| Clusterkonfiguration | Nicht migriert input.json für den Zielclustertyp (AKS oder EKS) generieren. | Kunde |
| Benutzerdefinierte Warnungen und Dashboards, die von Benutzern erstellt wurden | Nicht migriert Nach der Migration müssen Sie alle benutzerdefinierten Warnungen im Alert Manager und in den Grafana-Dashboards neu konfigurieren. | Kunde |
| Von Benutzern erstellte Anwendungsprotokolle / Prometheus-Streaming-Konfiguration | Nicht migriert Sie müssen das Anwendungsprotokoll und das Prometheus-Streaming neu konfigurieren. | Kunde |
| Dynamische Workloads | Abhängig von der Anwendung AI Center-Trainingsaufträge gehen verloren; Fähigkeiten werden beibehalten. | Fähigkeiten (Skript, das nach dem Upgrade ausgeführt werden muss): UiPath® Schulungsaufträge: Kunde |
| Objektspeicher | Externer Objektspeicher: Beibehalten Für den externen Objektspeicher haben Sie zwei Optionen:
Wichtig: Wenn Sie einen clusterinternen Objektspeicher verwenden, müssen Sie vor dem Upgrade eine Migration von Ceph nach extern durchführen. | Migrieren vom clusterinternen zum externen Objectstore: Kunde Externer Objektspeicher: UiPath® |
| Insights | Beibehalten | UiPath® |
| MongoDB-Daten | Beibehalten MongoDB-Daten werden in die Ziel-SQL verschoben. | UiPath® |
| RabbitMQ | Nicht benötigt | UiPath® |
| Überwachen (Daten) | Nicht benötigt Überwachungsdaten gelten nicht für den neuen Cluster. | Keine Angabe |
Vorbereitung
Vorbereiten der cluster_config.json-Datei
Ändern Sie nicht den Quellcluster, nachdem Sie den Migrationsprozess gestartet haben.
Führen Sie die folgenden Schritte aus, um die cluster_config.json-Datei vorzubereiten:
-
Laden Sie die Zielversion von
uipathctlauf den Quellcluster herunter und generieren Sie dieinput.json-Datei, indem Sieuipathctl manifest get-revisionausführen. Weitere Informationen finden Sie im folgenden Diagramm: -
Ändern Sie basierend auf der zuvor generierten
input.json-Datei dieinput.json-Datei des Zielclusters. Anweisungen finden Sie unter Konfigurieren von input.json.Sie müssen die Orchestrator-spezifische Konfiguration übertragen, die den Verschlüsselungsschlüssel pro Mandant und Azure/Amazon S3-Speicher-Buckets -Einstellungen enthält.
Hinweis:Dedizierter Microsoft SQL Server und PostgreSQL für die Process Mining Airflow-Datenbank wird für Version 2023.10.9 oder neuer empfohlen.
Wenn Sie von einer Version vor 2023.10.9 migrieren, enthält die generierte
input.json-Datei für den Zielcluster nicht die Verbindungszeichenfolge für die Airflow PostgreSQL-Datenbank. Um die neueste Version von Airflow zu verwenden, die PostgreSQL erfordert, müssen Sie diesqlalchemy-Verbindungszeichenfolgenvorlage für PostgreSQL vor der Migration manuell zurinput.json-Datei für den Zielcluster hinzufügen.Postgresql_connection_string_template_sqlalchemy_pyodbcpostgresql+psycopg2://<user>:<password>@<postgresql host>:<postgresql port>/DB_NAME_PLACEHOLDERpostgresql+psycopg2://<user>:<password>@<postgresql host>:<postgresql port>/DB_NAME_PLACEHOLDER -
Überprüfen Sie die Voraussetzungen im Zielcluster, indem Sie den folgenden Befehl ausführen:
uipathctl prereq run input-target.json --kubeconfig kubeconfig.target --versions versions.jsonuipathctl prereq run input-target.json --kubeconfig kubeconfig.target --versions versions.json -
Klonen Sie die SQL-Datenbanken von der Quellbereitstellung auf die Zielbereitstellung.
Private Registrierung ohne Internetzugangsanforderungen
Für den Migrationsprozess muss das neueste Docker-Image-Tag uipathcore sowohl für den Quell- als auch für den Zielcluster verfügbar sein. Wenn Ihr Quellcluster offline ist, stellen Sie das Image mit den folgenden Schritten zur Verfügung:
- Führen Sie die Schritte aus, um die vom Zielcluster verwendete Registrierung mit dem Offlinepaket in Option B: Hydratisieren der Registrierung mit dem Offlinepaket zu hydratisieren .
- Kopieren Sie die Binärdatei
uipathctlund die Dateiversions.jsonauf eine VM mit Zugriff auf den Quellcluster. - Führen Sie den folgenden Befehl aus:
jq -r '.[][] | select(.name=="uipath/uipathcore") | .ref + ":" + .version' "/path/to/versions.json" > images.txtjq -r '.[][] | select(.name=="uipath/uipathcore") | .ref + ":" + .version' "/path/to/versions.json" > images.txt - Fügen Sie das Image
uipathcoremithilfe der Binärdateiuipathctlzu Ihrer privaten Registrierung hinzu:./uipathctl registry seed --tag-file ./images.txt \ --source-registry "target.registry.fqdn.com" \ --source-password "target-registry-username" \ --source-username "target-registry-password" \ --dest-registry "<source.registry.fqdn.com>" \ --dest-username "<source-registry-username>" \ --dest-password "<source-registry-password>"./uipathctl registry seed --tag-file ./images.txt \ --source-registry "target.registry.fqdn.com" \ --source-password "target-registry-username" \ --source-username "target-registry-password" \ --dest-registry "<source.registry.fqdn.com>" \ --dest-username "<source-registry-username>" \ --dest-password "<source-registry-password>"Hinweis:Ersetzen Sie
registry.fqdn,registry-usernameundregistry-passworddurch die richtigen Werte für die private Registrierung, die von Ihrer Offline-Installation der Quelle verwendet wird.
Private Registrierung mit Internetzugangsanforderungen
Bei Verwendung eines privaten Registers müssen Sie dieses seeden. Anweisungen finden Sie unter Konfigurieren der OCI-konformen Registrierung.
Ausführung
Führen Sie die folgenden Schritte aus, um zur Automation Suite auf EKS/AKS zu migrieren:
- Führen Sie die Migration aus, indem Sie den folgenden Befehl ausführen:
uipathctl cluster migration run input-target.json --kubeconfig kubeconfig.source --target-kubeconfig kubeconfig.target --versions versions-target.jsonuipathctl cluster migration run input-target.json --kubeconfig kubeconfig.source --target-kubeconfig kubeconfig.target --versions versions-target.json - Schließen Sie die Installation der Automation Suite auf AKS/EKS auf dem Zielcluster ab, indem Sie den folgenden Befehl ausführen:
uipathctl manifest apply input-target.json --kubeconfig kubeconfig.target --versions versions-target.jsonuipathctl manifest apply input-target.json --kubeconfig kubeconfig.target --versions versions-target.json
AI Center-Fähigkeitsmigration
Die Schritte in diesem Abschnitt gelten nur, wenn Sie das AI Center im Quell- sowie im Zielcluster aktiviert haben. Beachten Sie, dass die Anweisungen davon ausgehen, dass AI Center im Zielcluster auf die Datenbank verweist, welche die Fähigkeitsdaten zum Ausführen der Fähigkeiten enthält.
Nach Abschluss der Migration müssen Sie die AI Center-Fähigkeiten synchronisieren, damit Sie sie erneut verwenden können.
Überprüfen des Status der Fähigkeitsmigration
Um den Status der Fähigkeiten in der entsprechenden Automation Suite im EKS/AKS-Cluster abzurufen, führen Sie die folgenden Schritte aus:
- Richten Sie die Variablen für die Ausführung der nächsten Befehle ein.
aicJobsImage=$(kubectl -n uipath get configmap aic-jobs-config -o "jsonpath={.data['aicenter/aicenter-jobs:v23.10-10.15-rc02']}") podName="skillstatuspod"aicJobsImage=$(kubectl -n uipath get configmap aic-jobs-config -o "jsonpath={.data['aicenter/aicenter-jobs:v23.10-10.15-rc02']}") podName="skillstatuspod" - Bereinigen Sie
skillstatuspod, der eventuell ausgeführt wird, bevor Sie den Fähigkeitsstatus erneut abrufen. Der folgende Befehl löscht den Pod aus der vorherigen Iteration, also verwenden Sie ihn mit Vorsicht.kubectl -n uipath delete pod "$podName" --force.kubectl -n uipath delete pod "$podName" --force. - Erstellen Sie den
skillstatuspod, um den Fähigkeitsstatus abzurufen. Der Pod kann einige Zeit zum Abrufen des Image und zur Ausführung benötigen, normalerweise weniger als 30 Sekunden.skill_arr="[]" kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c "curl -sSL -XPOST -H 'Content-Type: application/json' 'ai-deployer-svc.uipath.svc.cluster.local/ai-deployer/v1/system/mlskills:restore-status' -d \"$skill_arr\" | jq -r '([\"SKILL_ID\",\"SKILL_NAME\", \"STATUS\"] | (., map(length*\"-\"))), (.data[] | [.skillId, .skillName, .syncStatus]) | @tsv' | column -ts $'\t'; exit"skill_arr="[]" kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c "curl -sSL -XPOST -H 'Content-Type: application/json' 'ai-deployer-svc.uipath.svc.cluster.local/ai-deployer/v1/system/mlskills:restore-status' -d \"$skill_arr\" | jq -r '([\"SKILL_ID\",\"SKILL_NAME\", \"STATUS\"] | (., map(length*\"-\"))), (.data[] | [.skillId, .skillName, .syncStatus]) | @tsv' | column -ts $'\t'; exit"Hinweis:- Ersetzen Sie
$skill_arrdurch[], um alle Fähigkeiten auszuführen, oder['abcd', 'efgh'], um nur die beiden genannten Fähigkeiten auszuführen. - Die Ausgabe
skills idwird für die nächsten Befehle benötigt.
- Ersetzen Sie
- Überprüfen Sie die Ausgabe des Fähigkeitsstatus.
kubectl -n uipath logs -f "$podName" -c "$podName"kubectl -n uipath logs -f "$podName" -c "$podName"
Ausführen der Fähigkeitsmigration
Um die Fähigkeitsmigration auszuführen, führen Sie die folgenden Schritte aus:
-
Richten Sie die Variablen für die Ausführung der nächsten Befehle ein.
aicJobsImage=$(kubectl -n uipath get configmap aic-jobs-config -o "jsonpath={.data['AIC_JOBS_IMAGE']}") podName="skillsyncpod"aicJobsImage=$(kubectl -n uipath get configmap aic-jobs-config -o "jsonpath={.data['AIC_JOBS_IMAGE']}") podName="skillsyncpod" -
Bereinigen Sie
skillsyncpod, der eventuell ausgeführt wird, bevor Sie den Fähigkeitsstatus erneut abrufen. Der folgende Befehl löscht den Pod aus der vorherigen Iteration, also verwenden Sie ihn mit Vorsicht.kubectl -n uipath delete pod "$podName" --forcekubectl -n uipath delete pod "$podName" --force -
Starten Sie die Synchronisierung der Fähigkeiten. Der Pod kann einige Zeit zum Abrufen des Image und zur Ausführung benötigen, normalerweise weniger als 30 Sekunden.
kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c "curl -sSL -XPOST -H 'Content-Type: application/json' 'ai-deployer-svc.uipath.svc.cluster.local/ai-deployer/v1/system/mlskills:restore-all' -d \"[\"skill_id1\", \"skill_id2\", .... ]\"; exit"kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c "curl -sSL -XPOST -H 'Content-Type: application/json' 'ai-deployer-svc.uipath.svc.cluster.local/ai-deployer/v1/system/mlskills:restore-all' -d \"[\"skill_id1\", \"skill_id2\", .... ]\"; exit"Hinweis:Ersetzen Sie
skill idsdurch die Werte, die während des Verfahrens Überprüfen des Status der Fähigkeitsmigration kopiert wurden.Im folgenden Beispiel sehen Sie, wie Sie die Variable
skill_arrdeklarieren:skill_arr='[\"fb14154a-ce63-43ab-yyyy-xxxxxxxxxxxxxx\", \"ad58942d-e038-4d38-yyyy-xxxxxxxxxxxx\"]' # Replace them with ML skill ids in your environment kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c -x "curl -sSL -XPOST -H 'Content-Type: application/json' '/ai-deployer/v1/system/mlskills:restore-all' -d \"$skill_arr\"; exit"skill_arr='[\"fb14154a-ce63-43ab-yyyy-xxxxxxxxxxxxxx\", \"ad58942d-e038-4d38-yyyy-xxxxxxxxxxxx\"]' # Replace them with ML skill ids in your environment kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c -x "curl -sSL -XPOST -H 'Content-Type: application/json' '/ai-deployer/v1/system/mlskills:restore-all' -d \"$skill_arr\"; exit" -
Überprüfen Sie die Ausgabe des Synchronisierungsstatus der Fähigkeiten.
kubectl -n uipath logs -f "$podName" -c "$podName"kubectl -n uipath logs -f "$podName" -c "$podName" -
Der Vorgang kann je nach Anzahl der zu synchronisierenden Fähigkeiten viel Zeit in Anspruch nehmen und Sie können den Status der Fähigkeitsmigration regelmäßig überprüfen, bis keine Fähigkeit mehr im Status
IN_PROGRESSvorhanden ist.Hinweis:Wenn Sie den Status der Fähigkeitsmigration überprüfen oder die Fähigkeitsmigration ausführen, gilt dies für alle Fähigkeiten gleichzeitig. Alternativ können Sie diese Vorgänge nur für ausgewählte Fähigkeiten ausführen, indem Sie
-d "[skill_id1, skill_id2, .... ]"als zusätzliches Argument ancurlin Schritt 3 übergeben.
- Anforderungen
- Prozessübersicht
- Datenmigration und Zuständigkeiten
- Vorbereitung
- Vorbereiten der cluster_config.json-Datei
- Private Registrierung ohne Internetzugangsanforderungen
- Private Registrierung mit Internetzugangsanforderungen
- Ausführung
- Migration von AI Center-Fähigkeiten
- Überprüfen des Status der Fähigkeitsmigration
- Ausführen der Fähigkeitsmigration