UiPath Documentation
automation-suite
2.2510
true
EKS/AKS 上的 Automation Suite 安装指南
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。

从 EKS/AKS 上的 Automation Suite 迁移到 OpenShift 上的 Automation Suite

将 Kubernetes 资源、数据和 Insights 从 EKS/AKS 上的 Automation Suite 迁移到 OpenShift。

您可以从部署在 EKS/AKS 上的 Automation Suite 迁移到 OpenShift 上的 Automation Suite。 为此,您必须移动 Kubernetes 资源,并在适用时迁移数据和 Insights。

步骤 1:迁移 Kubernetes 资源​

要将 Kubernetes 资源从 EKS/AKS 迁移到 OpenShift,请执行以下步骤:

  1. 从 EKS/AKS 集群导出 Kubernetes 资源:

    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. 更新在输出目录中生成的文件中namespace 、 resourceVersion和uid的值。 确保将 <uipath> 替换为您计划使用的命名空间。

    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. 使用 kubeconfigr 在目标集群中创建清单:

    kubectl apply -f source-cluster-223902721 --namespace=<namespace>
    kubectl apply -f source-cluster-223902721 --namespace=<namespace>
    
  4. 完成数据和 Insights 迁移(步骤 2和步骤 3 )后,通过运行以下命令在目标集群上完成 Automation Suite 安装:

    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
    

步骤 2: 迁移数据​

要将数据从 EKS/AKS 上的 Automation Suite 迁移到 OpenShift 上的 Automation Suite,请执行以下步骤:

  1. 将源对象存储中的所有数据复制到目标对象存储。 如果您计划在目标集群中使用相同的对象存储,请跳过此步骤。
  2. 将 SQL 数据从源 SQL Server 复制到目标 SQL Server。 如果您计划在目标集群中使用相同的 SQL Server,请跳过此步骤。

步骤 3:迁移 Insights​

关于 Insights 迁移​

要迁移 Insights,您必须迁移以下 PVC:

  • insights-looker-lookerdir-pvc (PVC 大小:500Mi)
  • insights-looker-datadir-pvc (PVC 大小:10Gi)

如何迁移 Insights​

要迁移 Insights PVC,请执行以下步骤:

  1. 通过运行以下命令之一来创建外部存储密码。

    • 如果您使用兼容 S3 的存储,请运行以下命令:

      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>
      
    • 如果您使用 AWS S3 存储,请运行以下命令:

      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. 创建insights-looker-lookerdir-pvc 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. 创建 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. 创建用于迁移insights-looker-lookerdir-pvc Pod:

    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. 创建insights-looker-datadir-pvc 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. 创建用于迁移insights-looker-datadir-pvc Pod:

    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. 删除之前在步骤 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
    
  • 步骤 1:迁移 Kubernetes 资源​
  • 步骤 2:迁移数据​
  • 步骤 3:迁移 Insights​
  • 关于 Insights 迁移​
  • 如何迁移 Insights​

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新