跳转到主要内容
本节介绍将 ABBYY Vantage 更新到最新可用版本的过程。
在更新 Vantage 之前,请确保已满足系统要求章节中列出的该新版本的所有要求。
更新过程包括以下步骤:
  1. 同步容器镜像
  2. 备份数据
  3. 运行安装脚本
  4. 卸载 Vantage
  5. 更新 ABBYY Vantage

同步容器镜像

要同步容器镜像,请参照下载容器镜像中的步骤进行操作。

备份数据

若要将 Vantage 恢复到执行更新时正在运行的版本,必须拥有数据库、Consul 的备份以及 Kubernetes secrets 的副本。请按照以下步骤正确备份这些组件:
  1. 在为数据库和 Consul 创建备份之前,需要先停止集群。关闭集群中的所有节点。
  2. 创建以下项目的备份:
    • Databases:数据库列表为:apigatewayregistryauthauth-identitycatalogstoragecrondocumentsetfolderimportinteractive-jobsmailmailimportpermissionspublicapireportingsecretstoragesecurity-auditskillinfoskillmonitorstoragesubscriptionstokenmanagementtransactionsworkflowsworkspace
    • Consul:Kubernetes CronJob 会通过名称为 [X].consul-backup 的 Pod,将 Consul 备份到外部 RWX 存储(例如 NFS)。您可以从名为 consul-backup 的 PVC 文件夹中获取已备份的 TGZ 文件。
  3. 启动集群。启动集群中的所有节点。
  4. 备份 Kubernetes secrets 的副本。若要获取密钥,请运行以下命令:
kubectl get secret -n abbyy-vantage secretstorage-encryptionkeys -o yaml
kubectl get secret -n abbyy-vantage tokenmanagement-encryptionkeys -o yaml
在创建 Kubernetes Secret 副本备份之前,请确保集群已启动运行。
备份只是作为预防措施。如果升级成功,您将无需从备份中恢复。

运行安装脚本

在更新 ABBYY Vantage 之前,请先完成 Installation 中的步骤。 要运行安装脚本:
  1. 配置配置文件。
默认情况下,在更新 Vantage 时会删除技术核心 2 版本。若要保留该版本,请在 env_specific.yml 文件中添加 techcore.keep_previous_version 参数,并将其值设置为 true
  1. 准备证书。
  2. 下载容器镜像。
  3. 运行安装脚本(步骤 1-3)。

卸载 Vantage

运行以下 playbook 以卸载产品:
ansible-playbook -i inventories/k8s -v playbooks/uninstall-vantage.yml
此 Playbook 会移除所有服务,但数据存储将保持不变。

更新 ABBYY Vantage

要更新 ABBYY Vantage:
  1. 运行以下 playbook,以执行预部署检查,并阅读和接受 Vantage 的法律文件:
ansible-playbook -i inventories/k8s -v playbooks/0-PreflightCheck-k8s.yml
ansible-playbook -i inventories/k8s -v playbooks/legal.yml
Playbook 将会:
  • 对在该 Playbook 的 env_specific.yml 文件中指定 Parameter 的资源(数据库、SMTP 连接等)执行初步检查。
  • 提示系统管理员接受 EULA 和 ABBYY 隐私政策的条款。
  1. 运行以下 Playbook 以更新 Vantage:
ansible-playbook -i inventories/k8s -v playbooks/site-k8s-deploy.yml
playbook 将安装产品的新版本。通常整个过程大约需要 20–30 分钟。
在 ABBYY Vantage 更新之后,您需要重新进行授权。升级前获取的授权令牌将不再有效。
要使用 Advanced Designer 和 Scanning Station,您需要下载它们的新版本并安装到您的计算机上:
  • https://<your-vantage-host>/ad/latest - 用于下载 Advanced Designer
  • https://<your-vantage-host>/ss/latest - 用于下载 Scanning Station
如果更新过程失败,请参见以下“恢复”章节。

恢复

如果更新过程未成功,请按照以下步骤操作:
  1. 检查集群中的 pod 是否运行正常,如有异常,请将其重新启动。
  2. 分析未按预期运行的 pod 的日志。
  3. 按照 pod 日志中提供的故障排除步骤执行操作。
  4. 如果在安装新版本 Vantage 的任一步骤中升级失败(例如,等待 Vantage 任务、等待 Vantage 部署),请先修复错误原因,然后重新运行安装 playbook:
ansible-playbook -i inventories/k8s -v playbooks/site-k8s-deploy.yml

在新集群上安装带数据恢复功能的 Vantage

如果上述步骤未能解决问题,您可以按照以下步骤在新集群上安装带数据恢复功能的 Vantage:
  1. 确保您拥有所有数据的最新备份。
  2. 从先前创建的备份中恢复数据。
  3. 准备 env_specific 文件,其中包含用于连接从备份中恢复的数据库和外部存储的配置信息。
  4. 按照安装部分中运行安装脚本一节的步骤安装 Vantage。对于步骤 2(从 Docker 镜像运行安装程序),请使用下面的命令:
docker run -it --net=host \
-v $PWD/kube:/root/.kube \
-v $PWD/inventory:/ansible/inventories/k8s/inventory \
-v $PWD/env_specific.yml:/ansible/inventories/k8s/group_vars/all/env_specific.yml \
-v $PWD/ssl:/ansible/files/ssl:ro \
--privileged \
registry.local/vantage/vantage-k8s:2.7.1
  1. 使用之前备份的值覆盖 secretstorage-encryptionkeystokenmanagement-encryptionkeys 这两个 secret 中的键值: a. 运行以下命令:
    kubectl edit secrets -n abbyy-vantage secretstorage-encryptionkeys
    
    b. 在打开的文件中,在 key-<guid>.xml 后,将 base64 字符串替换为之前为 secretstorage-encryptionkeys secret 备份的密钥中包含的 base64 字符串。 c. 保存更改并关闭编辑器。 d. 使用以下命令,以相同方式更新 tokenmanagement-encryptionkeys secret:
    kubectl edit secrets -n abbyy-vantage tokenmanagement-encryptionkeys
    
  2. 覆盖密钥后,重启 secretstoragetokenmanagement 这两个 pod:
kubectl -n abbyy-vantage rollout restart $(kubectl -n abbyy-vantage get deployments -l app.kubernetes.io/component=secretstorage -o name)
kubectl -n abbyy-vantage rollout restart $(kubectl -n abbyy-vantage get deployments -l app.kubernetes.io/component=tokenmanagement -o name)
  1. 重新启动事务。在连接到该集群的计算机上,运行以下命令以访问事务服务:
kubectl port-forward -n abbyy-vantage deployments/abbyy-vantage-transactions 8080:8080
在浏览器中打开 http://localhost:8080/index.html,然后运行以下 API 方法:
/api/recovery/transactions/restart
如果在恢复后 Vantage 主机地址发生变化,并且系统中存在尚未被接受的邀请,则需要重新发送这些邀请。