UiPath Documentation
automation-suite
2.2510
true
Automation Suite in der EKS/AKS-Installationsanleitung
Wichtig :
Bitte beachten Sie, dass dieser Inhalt teilweise mithilfe von maschineller Übersetzung lokalisiert wurde. Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.

Migrieren von der Automation Suite auf EKS/AKS zur Automation Suite auf OpenShift

Migrieren Sie Kubernetes-Ressourcen, -Daten und -Insights von der Automation Suite auf EKS/AKS zu OpenShift.

Sie können von der Automation Suite, die auf EKS/AKS bereitgestellt wurde, zur Automation Suite auf OpenShift migrieren. Dazu müssen Sie Ihre Kubernetes-Ressourcen verschieben und ggf. Ihre Daten und Insights migrieren.

Schritt 1: Migrieren von Kubernetes-Ressourcen​

Um Ihre Kubernetes-Ressourcen von EKS/AKS zu OpenShift zu migrieren, führen Sie die folgenden Schritte aus:

  1. Exportieren Sie Ihre Kubernetes-Ressourcen aus dem EKS/AKS-Cluster:

    uipathctl cluster migration export ~/Downloads/aksinput.json --output-dir ~/Migrate --kubeconfig ~/Downloads/akskubeconfig --log-level debug
    uipathctl cluster migration export ~/Downloads/aksinput.json --output-dir ~/Migrate --kubeconfig ~/Downloads/akskubeconfig --log-level debug
    
  2. Aktualisieren Sie die Werte für namespace, resourceVersion und uid in der im Ausgabeverzeichnis generierten Datei. Ersetzen Sie <uipath> durch den Namespace, den Sie verwenden möchten.

    sed -i '' 's/namespace: uipath/namespace: <uipath>/g' source-cluster-223902721
    sed -i '' 's/namespace: airflow/namespace: <uipath>/g' source-cluster-223902721
    sed -i '' '/  resourceVersion:/d' source-cluster-223902721
    sed -i '' '/  uid:/d' source-cluster-223902721
    sed -i '' 's/namespace: uipath/namespace: <uipath>/g' source-cluster-223902721
    sed -i '' 's/namespace: airflow/namespace: <uipath>/g' source-cluster-223902721
    sed -i '' '/  resourceVersion:/d' source-cluster-223902721
    sed -i '' '/  uid:/d' source-cluster-223902721
    
  3. Erstellen Sie die Manifeste im Zielcluster mithilfe von dessen kubeconfigr:

    kubectl apply -f source-cluster-223902721 --namespace=<namespace>
    kubectl apply -f source-cluster-223902721 --namespace=<namespace>
    
  4. Schließen Sie nach Abschluss der Daten- und Insights-Migration (Schritt 2 und Schritt 3) die Automation Suite-Installation auf dem Zielcluster ab, indem Sie den folgenden Befehl ausführen:

    uipathctl manifest apply input-target.json --kubeconfig kubeconfig.target --versions versions-target.json
    uipathctl manifest apply input-target.json --kubeconfig kubeconfig.target --versions versions-target.json
    

Schritt 2: Migrieren von Daten​

Um Ihre Daten von der Automation Suite auf EKS/AKS zur Automation Suite auf OpenShift zu migrieren, führen Sie die folgenden Schritte aus:

  1. Kopieren Sie alle Daten aus dem Quellobjektspeicher in den Zielobjektspeicher. Überspringen Sie diesen Schritt, wenn Sie denselben Objektspeicher im Zielcluster verwenden möchten.
  2. Kopieren Sie die SQL-Daten vom Quell-SQL-Server auf den Ziel-SQL-Server. Überspringen Sie diesen Schritt, wenn Sie denselben SQL-Server im Zielcluster verwenden möchten.

Schritt 3: Migrieren von Insights​

Über die Insights-Migration​

Um Insights zu migrieren, müssen Sie die folgenden PVCs migrieren:

  • insights-looker-lookerdir-pvc (PVC-Größe: 500 Mi)
  • insights-looker-datadir-pvc (PVC-Größe: 10 Gi)

So migrieren Sie Insights​

Führen Sie die folgenden Schritte aus, um die Insights-PVCs zu migrieren:

  1. Erstellen Sie das externe Speichergeheimnis, indem Sie einen der folgenden Befehle ausführen.

    • Wenn Sie S3-kompatiblen Speicher verwenden, führen Sie den folgenden Befehl aus:

      kubectl create secret -n <namespace> generic export-externalobjects-secret \
      --from-literal=ACCESSKEY=<accesskey> \
      --from-literal=SECRETKEY=<secretkey> \
      --from-literal=REGION=<region> \
      --from-literal=FQDN=<fqdn> \
      --from-literal=BUCKET=<bucket> \
      --from-literal=USE_INSTANCE_PROFILE=<use_instance_profile> \
      --from-literal=CREATE_BUCKET=<create_bucket> \
      --from-literal=STORAGE_TYPE=s3 \
      --from-literal=PORT=<port>
      kubectl create secret -n <namespace> generic export-externalobjects-secret \
      --from-literal=ACCESSKEY=<accesskey> \
      --from-literal=SECRETKEY=<secretkey> \
      --from-literal=REGION=<region> \
      --from-literal=FQDN=<fqdn> \
      --from-literal=BUCKET=<bucket> \
      --from-literal=USE_INSTANCE_PROFILE=<use_instance_profile> \
      --from-literal=CREATE_BUCKET=<create_bucket> \
      --from-literal=STORAGE_TYPE=s3 \
      --from-literal=PORT=<port>
      
    • Wenn Sie den AWS S3-Speicher verwenden, führen Sie den folgenden Befehl aus:

      kubectl create secret -n <namespace> generic export-externalobjects-secret \ 
      --from-literal=ACCOUNTKEY=<accountkey> \
      --from-literal=ACCOUNTNAME=<accountname> \
      --from-literal=CLIENT_ID=<client_id> \
      --from-literal=AZURE_FQDN_SUFFIX=<fqdn> \
      --from-literal=BUCKET=<bucket> \
      --from-literal=USE_MANAGED_IDENTITY=<use_managed_profile> \
      --from-literal=CREATE_CONTAINER=<create_container> \
      --from-literal=STORAGE_TYPE=azure \
      --from-literal=USE_WORKLOAD_IDENTITY=<use_workload_identity>
      kubectl create secret -n <namespace> generic export-externalobjects-secret \ 
      --from-literal=ACCOUNTKEY=<accountkey> \
      --from-literal=ACCOUNTNAME=<accountname> \
      --from-literal=CLIENT_ID=<client_id> \
      --from-literal=AZURE_FQDN_SUFFIX=<fqdn> \
      --from-literal=BUCKET=<bucket> \
      --from-literal=USE_MANAGED_IDENTITY=<use_managed_profile> \
      --from-literal=CREATE_CONTAINER=<create_container> \
      --from-literal=STORAGE_TYPE=azure \
      --from-literal=USE_WORKLOAD_IDENTITY=<use_workload_identity>
      
  2. Erstellen Sie den PVC insights-looker-lookerdir-pvc :

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      labels:
        app.kubernetes.io/component: insightslooker
        app.kubernetes.io/instance: insights
        app.kubernetes.io/part-by: cloud-rpa
        argocd.argoproj.io/instance: insights
      name: insights-looker-lookerdir-pvc
      namespace: <namespace>
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 500Mi
      storageClassName: <storage-class-name>
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      labels:
        app.kubernetes.io/component: insightslooker
        app.kubernetes.io/instance: insights
        app.kubernetes.io/part-by: cloud-rpa
        argocd.argoproj.io/instance: insights
      name: insights-looker-lookerdir-pvc
      namespace: <namespace>
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 500Mi
      storageClassName: <storage-class-name>
    
  3. Erstellen Sie den RBAC:

    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: migration-sa
      namespace: <uipath>
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: migration-role
      namespace: <namespace>
    rules:
      - apiGroups: [""]
        resources: ["configmaps", "secrets"]
        verbs: ["get", "list", "watch", "create", "patch"]
    
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: migration-rolebinding
      namespace: <namespace>
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: migration-role
    subjects:
      - kind: ServiceAccount
        name: migration-sa
        namespace: <namespace>
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: migration-sa
      namespace: <uipath>
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: migration-role
      namespace: <namespace>
    rules:
      - apiGroups: [""]
        resources: ["configmaps", "secrets"]
        verbs: ["get", "list", "watch", "create", "patch"]
    
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: migration-rolebinding
      namespace: <namespace>
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: migration-role
    subjects:
      - kind: ServiceAccount
        name: migration-sa
        namespace: <namespace>
    
  4. Erstellen Sie den Pod für die Migration von insights-looker-lookerdir-pvc:

    apiVersion: v1
    kind: Pod
    metadata:
      name: inbound-migrator
      namespace: <namespace>
    spec:
      containers:
      - command:
        - /uipathcore
        - data
        - migrate
        - --source-secret 
        - export-externalobjects-secret
        - --source-path
        - insights/mnt/lookerfiles
        - --destination-path
        - /mnt/lookerfiles
        - --namespace
        - <namespace>
        - --log-level
        - debug
        image: sfbrdevhelmweacr.azurecr.io/uipath/uipathcore:2.2510.0
        imagePullPolicy: IfNotPresent
        name: pvc-migrator
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
            - MKNOD
          runAsNonRoot: true
        volumeMounts:
        - mountPath: /mnt/lookerfiles
          name: insights-looker-lookerdir
      serviceAccountName: migration-sa
      imagePullSecrets:
      - name: uipathpullsecret
      securityContext:
        runAsNonRoot: true
      volumes:
      - name: insights-looker-lookerdir
        persistentVolumeClaim:
          claimName: insights-looker-lookerdir-pvc
    apiVersion: v1
    kind: Pod
    metadata:
      name: inbound-migrator
      namespace: <namespace>
    spec:
      containers:
      - command:
        - /uipathcore
        - data
        - migrate
        - --source-secret 
        - export-externalobjects-secret
        - --source-path
        - insights/mnt/lookerfiles
        - --destination-path
        - /mnt/lookerfiles
        - --namespace
        - <namespace>
        - --log-level
        - debug
        image: sfbrdevhelmweacr.azurecr.io/uipath/uipathcore:2.2510.0
        imagePullPolicy: IfNotPresent
        name: pvc-migrator
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
            - MKNOD
          runAsNonRoot: true
        volumeMounts:
        - mountPath: /mnt/lookerfiles
          name: insights-looker-lookerdir
      serviceAccountName: migration-sa
      imagePullSecrets:
      - name: uipathpullsecret
      securityContext:
        runAsNonRoot: true
      volumes:
      - name: insights-looker-lookerdir
        persistentVolumeClaim:
          claimName: insights-looker-lookerdir-pvc
    
  5. Erstellen Sie den PVC insights-looker-datadir-pvc :

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      labels:
        app.kubernetes.io/component: insightslooker
        app.kubernetes.io/instance: insights
        app.kubernetes.io/part-by: cloud-rpa
        argocd.argoproj.io/instance: insights
      name: insights-looker-datadir-pvc
      namespace: <namespace>
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: <storage-class-name>
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      labels:
        app.kubernetes.io/component: insightslooker
        app.kubernetes.io/instance: insights
        app.kubernetes.io/part-by: cloud-rpa
        argocd.argoproj.io/instance: insights
      name: insights-looker-datadir-pvc
      namespace: <namespace>
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: <storage-class-name>
    
  6. Erstellen Sie den Pod für die Migration von insights-looker-datadir-pvc:

    apiVersion: v1
    kind: Pod
    metadata:
      name: inbound-migrator-data
      namespace: <namespace>
    spec:
      containers:
      - command:
        - /uipathcore
        - data
        - migrate
        - --source-secret 
        - export-externalobjects-secret
        - --source-path
        - insights/app/workdir
        - --destination-path
        - /mnt/lookerfiles
        - --namespace
        - <namespace>
        - --log-level
        - debug
        image: sfbrdevhelmweacr.azurecr.io/uipath/uipathcore:2.2510.0
        imagePullPolicy: IfNotPresent
        name: pvc-migrator
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
            - MKNOD
          runAsNonRoot: true
        volumeMounts:
        - mountPath: /mnt/lookerfiles
          name: insights-looker-datadir
      serviceAccountName: migration-sa
      imagePullSecrets:
      - name: uipathpullsecret
      securityContext:
        runAsUser: 1000700000
        runAsNonRoot: true
      volumes:
      - name: insights-looker-datadir
        persistentVolumeClaim:
          claimName: insights-looker-datadir-pvc
    apiVersion: v1
    kind: Pod
    metadata:
      name: inbound-migrator-data
      namespace: <namespace>
    spec:
      containers:
      - command:
        - /uipathcore
        - data
        - migrate
        - --source-secret 
        - export-externalobjects-secret
        - --source-path
        - insights/app/workdir
        - --destination-path
        - /mnt/lookerfiles
        - --namespace
        - <namespace>
        - --log-level
        - debug
        image: sfbrdevhelmweacr.azurecr.io/uipath/uipathcore:2.2510.0
        imagePullPolicy: IfNotPresent
        name: pvc-migrator
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
            - MKNOD
          runAsNonRoot: true
        volumeMounts:
        - mountPath: /mnt/lookerfiles
          name: insights-looker-datadir
      serviceAccountName: migration-sa
      imagePullSecrets:
      - name: uipathpullsecret
      securityContext:
        runAsUser: 1000700000
        runAsNonRoot: true
      volumes:
      - name: insights-looker-datadir
        persistentVolumeClaim:
          claimName: insights-looker-datadir-pvc
    
  7. Löschen Sie das Dienstkonto, die Rolle und die Rollenbindung, die zuvor in Schritt 3 erstellt wurden:

    kubectl -n <namespace> delete sa migration-sa
    kubectl -n <namespace> delete role migration-role
    kubectl -n <namespace> delete rolebinding migration-rolebinding
    kubectl -n <namespace> delete sa migration-sa
    kubectl -n <namespace> delete role migration-role
    kubectl -n <namespace> delete rolebinding migration-rolebinding
    

War diese Seite hilfreich?

Verbinden

Benötigen Sie Hilfe? Support

Möchten Sie lernen? UiPath Academy

Haben Sie Fragen? UiPath-Forum

Auf dem neuesten Stand bleiben