UiPath Documentation
automation-suite
2.2510
true
Guia de instalação do Automation Suite no EKS/AKS
Importante :
A tradução automática foi aplicada parcialmente neste conteúdo. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Migração do Automation Suite no EKS/AKS para o Automation Suite no OpenShift

Migre recursos, dados e Insights do Kubernetes do Automation Suite no EKS/AKS para o OpenShift.

Você pode migrar do Automation Suite implantado no EKS/AKS para o Automation Suite no OpenShift. Para fazer isso, você deve mover seus recursos do Kubernetes e, se aplicável, migrar seus dados e Insights.

Etapa 1: migração de recursos do Kubernetes​

Para migrar seus recursos do Kubernetes do EKS/AKS para o OpenShift, execute as seguintes etapas:

  1. Exporte seus recursos do Kubernetes do cluster EKS/AKS:

    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. Atualize os valores para namespace, resourceVersion e uid no arquivo gerado no diretório de saída. Certifique-se de substituir <uipath> pelo namespace que você planeja usar.

    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. Crie os manifestos no cluster de destino usando seu kubeconfigr:

    kubectl apply -f source-cluster-223902721 --namespace=<namespace>
    kubectl apply -f source-cluster-223902721 --namespace=<namespace>
    
  4. Após concluir a migração de dados e do Insights (Etapa 2 e Etapa 3), conclua a instalação do Automation Suite no cluster de destino executando o seguinte comando:

    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
    

Etapa 2: migração de dados​

Para migrar seus dados do Automation Suite no EKS/AKS para o Automation Suite no OpenShift, execute as seguintes etapas:

  1. Copie todos os dados do objectstore de origem para o objectstore de destino. Pule esta etapa se planeja usar o mesmo objectstore no cluster de destino.
  2. Copie os dados SQL do SQL Server de origem para o SQL Server de destino. Ignore esta etapa se você planeja usar o mesmo SQL Server no cluster de destino.

Etapa 3: Migração do Insights​

Sobre a migração do Insights​

Para migrar o Insights, você deve migrar os seguintes PVCs:

  • insights-looker-lookerdir-pvc (Tamanho do PVC: 500Mi)
  • insights-looker-datadir-pvc (tamanho do PVC: 10Gi)

Como migrar o Insights​

Para migrar os PVCs do Insights, execute as seguintes etapas:

  1. Crie o segredo de armazenamento externo executando um dos seguintes comandos.

    • Se você usar armazenamento compatível com S3, execute o seguinte comando:

      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>
      
    • Se você usar o armazenamento do AWS S3, execute o seguinte comando:

      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. Crie o 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. Crie o 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. Crie o pod para migrar 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. Crie o 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. Crie o pod para migrar 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. Exclua a conta de serviço, a função e a vinculação de funções criadas anteriormente na etapa 3:

    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
    

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades