教程

升级包篇

用于SuperMap iManager for Kubernetes 和 GIS 云套件升级说明。

要升级的当前版本: 10.1.x, 10.2.x, 10.2.0a, 11.0.x, 11.1.x

可升级至最新版本: 11.1.1

如果要升级的当前版本为 10.1.0,并且该版本是从 10.0.1 版本升级上来的,请先参考辅助升级进行操作,再参考此说明进行升级。

环境准备

  • 镜像包。如果 iManager for k8s 和 GIS 云套件使用阿里云镜像仓库可以跳过这一步。下载升级之后版本对应的镜像包,比如从 11.0.0 升级至 11.1.1,则需要准备 11.1.1 镜像包。以 11.1.1 为例:

    镜像包位于网盘路径: iManager部署包/iManager 11.1.1/iManager for Kubernetes部署包/supermap-imanager-for-kubernetes-registry-all-11.1.1-linux-x64.tar.gz

    下载镜像包之后,将镜像包拷贝到任意装有 Docker 服务的机器任意目录,解压,进入解压后的目录,参照目录下的 readme.txt 将镜像包同步到原有镜像仓库。

升级iManager

  1. 阅读 注意事项
  2. 下载将要升级版本的正式部署包并解压
  3. 进入解压后的部署包,修改部署包中的 values.yaml 文件。values.yaml 文件内容需要和原来部署包中 values.yaml 字段相同(deploy_*_tag 字段应该使用新部署包的内容)。对于新部署包中存在而原来部署包中所没有的字段,请保持默认值

11.1.0之前部署包中的deploy_disable_log,被拆分成deploy_disable_fluentd_es、deploy_disable_elasticsearch、deploy_disable_kibana

deploy_disable_metrics_server被拆分成deploy_disable_metrics_server、deploy_disable_kube_state_metrics

如果之前部署的deploy_disable_log值为true,则上述几个拆分后相应的配置项,值也需修改为true

(1)升级过程中deploy_async_function_enableddeploy_sync_function_enabled相关值默认为false,不会按照环境动态获取。如需在升级之后使用异步函数和同步函数,需要明确设置值为true

(2)如果之前的版本未开启服务网格,而想要在升级之后的版本开启,请在新部署包解压后目录下执行以下命令开启

kubectl label ns <imanager namespace> istio-injection=enabled \
    --overwrite
chmod +x ./istio.sh && ./istio.sh open

参数说明: <imanager namespace> 是 iManager for k8s 所在命名空间,默认是 supermap

  1. 进入当前目录下创建 yamls 目录,并将正式部署包中的 values.yaml 放到 yamls 目录下,然后执行以下命令启动。升级过程中会在当前目录创建 logs 目录,里面包含升级日志

    # 必填,需升级的产品/解决方案名称,默认使用 imanager,可选 imanager, giscloudsuite,分别表示iManager for k8s 和 GIS 云套件。
    export PRODUCT=imanager
    
    # 必填,k8s master url,可通过执行 kubectl cluster-info 获得,例如:https://172.16.112.150:6443。
    export KUBERNETES_MASTER_URL=<kubernetes master url>
    
    # 必填,待升级的当前版本,比如 10.1.3, 10.2.0。
    export CURRENT_VERSION=<current version>
    
    # 选填,要更新的产品架构,默认使用 amd64,可选 amd64, arm64;
    # 可选环境变量在执行脚本之前,通过 `export` 命令根据实际情况添加,升级 GIS 云套件一致。
    export ARCH=amd64
    
    chmod +x upgrade.sh && ./upgrade.sh

    升级完成后,请访问 iManager for k8s 主页面,检查 存储管理 中是否包含新增的且未挂载的服务,没有挂载的服务可以通过页面上的“绑定”操作进行绑定

注意事项

  1. 升级脚本要求操作用户具备通过 kubectl 操作 Kubernetes 集群的能力以及访问 Docker 的能力。
  2. 升级过程中的 当前目录 指的是包含和Readme.pdf文档一同解压的所有文件的目录。
  3. 升级(iManager for k8s 或 GIS 云套件)过程中相关服务会重新启动,此时产品无法访问与使用。
  4. 使用升级包从 10.1.0 版本升级至最新版本后,10.1.0版本中对报警规则的静默操作记录会丢失,如有需要,升级后需再次静默。10.1.1(含)之后的版本升级不受影响。
  5. 使用升级包从 10.1.0 版本升级至最新版本后,统计报表 生成的报表会丢失升级之前的用户操作数据,如有需要,请在升级前下载报表保存。10.1.1(含)之后的版本升级不受影响。
  6. 使用升级包升级到最新版本的环境无法使用“支持禁用不常用服务和配置外部已有第三方服务”功能。

升级GIS云套件

以下的参数说明:<giscloudsuite namespace> 是 GIS 云套件所在命名空间

如果是使用 GIS 云套件包部署,需额外执行以下步骤:

  1. 先执行以下命令找到环境变量 KIBANA_BASEPATH 并去掉对应值的最后一个引号 “。比如原来的值是 /kibana” 修改为 /kibana。
kubectl -n <giscloudsuite namespace> \
  edit deploy ispeco-dashboard-api
  1. 下载将要升级版本的GIS云套件正式部署包并解压。进入解压后的部署包,修改部署包中的 values.yaml 文件。values.yaml 文件内容需要和原来部署包中 values.yaml 字段相同(deploy_*_tag 字段应该使用新部署包的内容)。对于新部署包中存在而原来部署包中所没有的字段,请保持默认值。进入升级包解压目录,创建 yamls 目录,将正式部署包中的 values.yaml 拷贝至 yamls 目录下,并重命名为 giscloudsuite_values.yaml。
  1. 为保证升级过程顺利,升级前请将 StatefulSet keycloakStatefulSet keycloak-postgresql 伸缩成 1,如果 keycloak 不是 StatefulSet 类型,则不需要处理。可以通过执行下面命令查看 keycloak 是否为 StatefulSet
kubectl -n <giscloudsuite namespace> get statefulset keycloak

如果上述命令有结果返回,则可以通过执行下面命令分别伸缩成 1

kubectl -n <giscloudsuite namespace> scale --replicas=1 statefulset/keycloak
kubectl -n <giscloudsuite namespace> scale --replicas=1 statefulset/keycloak-postgresql

待 keycloak 和 keycloak-postgresql pod 数量剩余 1 个。

等待升级包升级完成,站点可访问之后,可将 keycloak 和 keycloak-postgresql 伸缩回原来副本数。

  1. 如果升级之前已经开启机器学习服务,请在升级之前关闭机器学习服务,待升级之后再开启。
  2. 从11i开始引入了Serverless GIS技术,如果想要在GIS云套件中进行体验,请从网盘以下路径下载 Serverless 安装部署包(网盘路径:iManager部署包/软件工具包/kubernetes离线安装包/Serverless/kubernetes-serverless-amd64-deploy.zip),依据 Serverless 部署包在要升级的环境部署,之后在执行升级脚本之前设置环境变量。如不使用可以跳过这一步。
export ASYNC_FUNCTION_ENABLED=true
  1. 执行下面命令升级(具体规则请参照 升级iManager第4步)
export PRODUCT=giscloudsuite
export KUBERNETES_MASTER_URL=<kubernetes master url>
export NAMESPACE=<giscloudsuite namespace>
export CURRENT_VERSION=<current version>
chmod +x upgrade.sh && ./upgrade.sh

附录

1.更新服务

以下服务的更新可选,请按需进行更新。说明:除参考以下更新镜像以外,还需要在许可->更新管理界面更新相应的服务。

更新服务节点

访问 iManager for k8s 的 GIS 云套件详情页面,点击“修改镜像”修改对应服务的镜像为 10.2.1 镜像,例如:更新服务节点”gisapp-portal-default-0”。

modifyimage

将镜像名修改为 <registry>/<namespace>/<image>:<tag> 格式

<registry> 为升级包仓库地址

<namespace> 为升级包使用的命名空间

<image> 为服务节点对应的镜像,各个服务节点对应的镜像名参见下面表格

<tag> 为镜像的版本标签,格式为 “版本-架构”,例如:10.2.1-amd64, 10.2.1-arm64

服务节点类型对应的前缀和镜像列表:

服务节点类型 服务名称前缀 镜像名称
通用节点 gisapp- iserver-gisapplication
地图节点 gisapp-mapping- iserver-gisapplication-mapping
数据节点 gisapp-data- iserver-gisapplication-data-analysis
通用分析节点 gisapp-analysis- iserver-gisapplication-data-analysis
地址匹配分析节点 gisapp-addressmatchanalysis- iserver-gisapplication-analysis-address-match
空间分析节点 gisapp-spatialanalysis- iserver-gisapplication-analysis-spatial
网络分析节点 gisapp-networkanalysis- iserver-gisapplication-analysis-network
交通换乘分析节点 gisapp-trafficanalysis- iserver-gisapplication-analysis-traffic-transfer
ArcGIS几何分析节点 gisapp-geometryanalysis- iserver-gisapplication-analysis-geometry
三维节点 gisapp-realspace- iserver-gisapplication-realspace
瓦片节点 gisapp-tiles- iserver-gisapplication-tiles
数据流节点 gisapp-dataflow- iserver-dataflow

如果使用 GIS 云套件包进行部署,可以创建新的服务节点,把原来服务节点上的服务迁移到到新节点,移除原来节点。

更新流数据服务

参考更新服务节点即可,服务名称前缀为:iserver-streaming-。

更新内置服务

如您需要更新内置服务,禁用后重新开启即可。

2.常见问题解答

  1. 云套件升级后,iPortal主页面图片加载失败怎么办?

    答:请联系技术支持人员协调处理。

  2. 如果升级之后查看页面,发现页面上展示的产品信息没有变化怎么办?

    答: a. 如果是 iManager 的产品信息未变更,请查看基础服务页面,找到 imanager-dashboard-ui 服务,点击修改镜像查看镜像是否和升级后的当前版本一致。如果镜像版本一致,请参考帮助文档教程 —> 附录 —> 定制iManager产品信息 修改产品信息即可。

    b. 如果是 GIS 云套件信息未变更,请访问 iManager for k8s 的 GIS 云套件详情页面,找到 ispeco-dashboard-ui 服务,点击修改镜像查看镜像是否和升级后的当前版本一致。如果镜像版本一致,那么参考帮助文档GIS云套件 —> 附录 —> 定制GIS云套件产品信息 修改即可。