automation-suite
2.2510
true
EKS/AKS 上的 Automation Suite 安装指南
- 概述
- 要求
- 预安装
- 安装
- 安装后
- 迁移和升级
- 升级 Automation Suite
- 在 Automation Suite 集群之间迁移
- 从 EKS/AKS 上的 Automation Suite 迁移到 OpenShift 上的 Automation Suite
- 监控和警示
- 集群管理
- 特定于产品的配置
- 故障排除
- 由于无法连接到 Azure Government,备份设置不起作用
- 启用自定义节点污点时,UiPath 命名空间中的 Pod 卡住
- 无法使用代理设置启动 Automation Hub 和 Apps
- 由于“验证失败”错误,Velero 备份失败
- 外部密码故障排除
- 时间即服务故障排除
- 无法在启用 TLS 证书验证的情况下启动 AI Center 和 Document Understanding Pod
- TLS 证书验证错误
- Fluentd 不会在 IPv6 环境中导出日志
- Studio 桌面版无法加载 Integration Service 连接器和活动
- 手动 ArgoCD 网络策略缓解措施 (MHSA-47m3-95c7-g2g8)
- 为 uipathctl 创建的工作负载配置资源请求和限制
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。
新发布内容的本地化可能需要 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,请执行以下步骤:
-
从 EKS/AKS 集群导出 Kubernetes 资源:
uipathctl cluster migration export ~/Downloads/aksinput.json --output-dir ~/Migrate --kubeconfig ~/Downloads/akskubeconfig --log-level debuguipathctl cluster migration export ~/Downloads/aksinput.json --output-dir ~/Migrate --kubeconfig ~/Downloads/akskubeconfig --log-level debug -
更新在输出目录中生成的文件中
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-223902721sed -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 -
使用 kubeconfigr 在目标集群中创建清单:
kubectl apply -f source-cluster-223902721 --namespace=<namespace>kubectl apply -f source-cluster-223902721 --namespace=<namespace> -
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
步骤 2: 迁移数据
要将数据从 EKS/AKS 上的 Automation Suite 迁移到 OpenShift 上的 Automation Suite,请执行以下步骤:
- 将源对象存储中的所有数据复制到目标对象存储。 如果您计划在目标集群中使用相同的对象存储,请跳过此步骤。
- 将 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,请执行以下步骤:
-
通过运行以下命令之一来创建外部存储密码。
-
如果您使用兼容 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>
-
-
创建
insights-looker-lookerdir-pvcPVC: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> -
创建 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> -
创建用于迁移
insights-looker-lookerdir-pvcPod: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-pvcapiVersion: 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 -
创建
insights-looker-datadir-pvcPVC: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> -
创建用于迁移
insights-looker-datadir-pvcPod: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-pvcapiVersion: 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 -
删除之前在步骤 3 中创建的服务帐户、角色和角色绑定:
kubectl -n <namespace> delete sa migration-sa kubectl -n <namespace> delete role migration-role kubectl -n <namespace> delete rolebinding migration-rolebindingkubectl -n <namespace> delete sa migration-sa kubectl -n <namespace> delete role migration-role kubectl -n <namespace> delete rolebinding migration-rolebinding