automation-suite
2024.10
true
UiPath logo, featuring letters U and I in white
Automation Suite auf EKS/AKS-Installationsanleitung
Last updated 11. Nov. 2024

Migrating between Automation Suite clusters

About the cluster migration

You can migrate from one Automation Suite cluster to another if you use the uipath namespace instead of a custom namespace and want to move from one Automation Suite flavor to another. We support the following scenarios:
  • Migrate from Automation Suite on Linux to a new installation of Automation Suite on EKS/AKS or Automation Suite on OpenShift;

  • Migrate from Automation Suite on EKS/AKS to a new installation of Automation Suite on OpenShift;

  • Migrate from Automation Suite on OpenShift to a new installation of Automation Suite on EKS/AKS;

  • Migrate from Automation Suite on EKS to Automation Suite on AKS or from Automation Suite on AKS to Automation Suite on EKS.

Note that you can attempt to perform the migration operation multiple times with no impact on your existing cluster.

Die folgenden Migrationsszenarien werden nicht unterstützt:

  • Migrating from Automation Suite on Linux to an existing installation of Automation on EKS/AKS or Automation Suite on OpenShift;

  • Migrating an Automation Suite on OpenShift cluster to Automation Suite on Linux cluster.

Prozessübersicht

Schritt

Beschreibung

1.

Mandatory. Make sure you meet the migration requirements.

2.

Mandatory. Prepare the target cluster and the docker images for both source and target cluster.

Optional. Wenn Ihre Bereitstellung offline ist oder wenn Sie eine private OCI-Registrierung verwenden, stellen Sie sicher, dass die erforderlichen Images verfügbar sind.

3.

Mandatory. Start the migration, move the data, and run the Automation Suite installation.

4.

Optional. If AI Center is enabled on both the source and target clusters, migrate the skills.

Anforderungen

To migrate from an Automation Suite cluster to another, you must meet the following requirements:

  • Download the following artifacts:

  • 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.

  • If you migrate from Automation Suite on Linux, the version of your source cluster must be 2022.10 or newer.

  • If you migrate to Automation Suite on OpenShift, the version of your source cluster must be 2023.10 or newer.

  • Offline-only requirements: You must hydrate the target cluster.

Datenmigration und Zuständigkeiten

Daten

Migrationsmechanismus

StatusVerantwortung

SQL

Beibehalten

Sie haben zwei Optionen:

  1. Verwenden Sie dieselben Datenbanken für die neue Installation wieder. Verweisen Sie die SQL-Verbindungszeichenfolgen der Clusterkonfiguration auf den vorhandenen Datenbankserver.

  2. Klonen Sie Ihre Datenbanken und verwenden Sie stattdessen die Klone.

Kunde

Docker-Registrierung

Nicht migriert

Wenn Sie eine private Registrierung verwenden, müssen Sie die Zielregistrierung hydratisieren. Wenn Sie registry.uipath.com für den Zielcluster verwenden, sind keine weiteren Schritte erforderlich.)

Kunde

FQDN

Optional

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

Sie müssen das neue input.json für den Zielclustertyp (AKS oder EKS) generieren.
Kunde
Benutzerdefinierte Warnungen und Dashboards, die von Benutzern erstellt wurden

Nicht migriert

Sie müssen die benutzerdefinierten Warnungen und Dashboards nach der Migration 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®

Trainingsaufträge: Kunde

Objektspeicher

Externer Objektspeicher: Beibehalten

Für den externen Objektspeicher haben Sie zwei Optionen:

  1. Verwenden Sie den vorhandenen externen Objektspeicher wieder und verbinden Sie ihn mit der neuen Umgebung.

  2. Erstellen Sie ein Replikat Ihres aktuellen Objektspeichers und verwenden Sie es für das neue Setup.

Wichtig: Wenn Sie einen clusterinternen Objektspeicher verwenden, müssen Sie vor dem Upgrade eine Migration von Ceph nach extern durchführen.

Migration vom clusterinternen zum externen Objektspeicher: 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

Preparing the cluster migration

Preparing the target cluster

Hinweis:

Ändern Sie nicht den Quellcluster, nachdem Sie den Migrationsprozess gestartet haben.

To prepare the target cluster, take the following steps:

  1. Download the targeted version of input.json on the source cluster and generate the input.json file by running the following command:
    uipathctl manifest get-revisionuipathctl manifest get-revision
    For details, refer to the following diagram:
    docs image
  2. Based on the previously generated input.json file, modify the input.json file of the target cluster.

    Sie müssen die Orchestrator-spezifische Konfiguration übertragen, die den Verschlüsselungsschlüssel pro Mandant und die Azure/Amazon S3 Bucket-Einstellungen enthält.

  3. Ü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
    Hinweis:
    input-target.json is the input.json file corresponding to the target cluster.
  4. Klonen Sie die SQL-Datenbanken von der Quellbereitstellung auf die Zielbereitstellung.

Hydrating the OCI-compliant registry registry without internet access

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:
  1. 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.
  2. Kopieren Sie die Binärdatei uipathctl und die Datei versions.json auf eine VM mit Zugriff auf den Quellcluster.
  3. 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
  4. Seed the uipathcore image from the registry of the target cluster to the registry of source cluster:
    ./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"
    Note: Make sure to update the command as follows:
    • Replace target.registry.fqdn.com, target.registry.fqdn.com, and target-registry-password with the proper values that correspond to the registry associated with the target cluster;
    • Replace source.registry.fqdn.com, source.registry.fqdn.com, and source-registry-password with the proper values that correspond to the registry associated with the source cluster.

Hydrating the OCI-compliant registry with internet access

If you use a private registry, you must seed it. For instructions, see Configuring the OCI-compliant registry.

Running the cluster migration

To migrate to the target Automation Suite cluster, take the following steps:

  1. 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
  2. Complete the Automation Suite installation on the target cluster by running the following command:
    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

Migrating the AI Center skills

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:
  1. 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"
  2. 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. 
  3. 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_arr durch [] , um alle Fähigkeiten auszuführen, oder ['abcd', 'efgh'] , um nur die beiden genannten Fähigkeiten auszuführen.
    • Die Ausgabe skills id wird für die nächsten Befehle benötigt.
  4. Ü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:

  1. 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"
  2. 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
  3. 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 ids durch die Werte, die während des Verfahrens zum Überprüfen des Status der Fähigkeitsmigration kopiert wurden.
    Check the example below for declaring the skill_arr variable:
    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"
  4. Ü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"
  5. 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_PROGRESS vorhanden 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 an curl in Schritt 3 übergeben.

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
Uipath Logo White
Vertrauen und Sicherheit
© 2005–2024 UiPath. Alle Rechte vorbehalten