教程
升级包篇
用于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
- 阅读 注意事项
- 下载将要升级版本的正式部署包并解压
- 进入解压后的部署包,修改部署包中的 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_enabled
和deploy_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
-
进入
当前目录
下创建 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 主页面,检查
存储管理
中是否包含新增的且未挂载的服务,没有挂载的服务可以通过页面上的“绑定”操作进行绑定
注意事项
- 升级脚本要求操作用户具备通过 kubectl 操作 Kubernetes 集群的能力以及访问 Docker 的能力。
- 升级过程中的
当前目录
指的是包含和Readme.pdf文档一同解压的所有文件的目录。 - 升级(iManager for k8s 或 GIS 云套件)过程中相关服务会重新启动,此时产品无法访问与使用。
- 使用升级包从 10.1.0 版本升级至最新版本后,10.1.0版本中对报警规则的静默操作记录会丢失,如有需要,升级后需再次静默。10.1.1(含)之后的版本升级不受影响。
- 使用升级包从 10.1.0 版本升级至最新版本后,统计报表 生成的报表会丢失升级之前的用户操作数据,如有需要,请在升级前下载报表保存。10.1.1(含)之后的版本升级不受影响。
- 使用升级包升级到最新版本的环境无法使用“支持禁用不常用服务和配置外部已有第三方服务”功能。
升级GIS云套件
以下的参数说明:
<giscloudsuite namespace>
是 GIS 云套件所在命名空间
如果是使用 GIS 云套件包部署,需额外执行以下步骤:
- 先执行以下命令找到环境变量
KIBANA_BASEPATH
并去掉对应值的最后一个引号 “。比如原来的值是 /kibana” 修改为 /kibana。kubectl -n <giscloudsuite namespace> \ edit deploy ispeco-dashboard-api
- 下载将要升级版本的GIS云套件正式部署包并解压。进入解压后的部署包,修改部署包中的 values.yaml 文件。values.yaml 文件内容需要和原来部署包中 values.yaml 字段相同(
deploy_*_tag
字段应该使用新部署包的内容)。对于新部署包中存在而原来部署包中所没有的字段,请保持默认值。进入升级包解压目录,创建 yamls 目录,将正式部署包中的 values.yaml 拷贝至 yamls 目录下,并重命名为 giscloudsuite_values.yaml。
- 为保证升级过程顺利,升级前请将 StatefulSet keycloak 和 StatefulSet 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 伸缩回原来副本数。
- 如果升级之前已经开启机器学习服务,请在升级之前关闭机器学习服务,待升级之后再开启。
- 从11i开始引入了Serverless GIS技术,如果想要在GIS云套件中进行体验,请从网盘以下路径下载 Serverless 安装部署包(网盘路径:iManager部署包/软件工具包/kubernetes离线安装包/Serverless/kubernetes-serverless-amd64-deploy.zip),依据 Serverless 部署包在要升级的环境部署,之后在执行升级脚本之前设置环境变量。如不使用可以跳过这一步。
export ASYNC_FUNCTION_ENABLED=true
- 执行下面命令升级(具体规则请参照 升级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”。
将镜像名修改为 <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.常见问题解答
-
云套件升级后,iPortal主页面图片加载失败怎么办?
答:请联系技术支持人员协调处理。
-
如果升级之后查看页面,发现页面上展示的产品信息没有变化怎么办?
答: a. 如果是 iManager 的产品信息未变更,请查看基础服务页面,找到 imanager-dashboard-ui 服务,点击修改镜像查看镜像是否和升级后的当前版本一致。如果镜像版本一致,请参考帮助文档教程 —> 附录 —> 定制iManager产品信息 修改产品信息即可。
b. 如果是 GIS 云套件信息未变更,请访问 iManager for k8s 的 GIS 云套件详情页面,找到 ispeco-dashboard-ui 服务,点击修改镜像查看镜像是否和升级后的当前版本一致。如果镜像版本一致,那么参考帮助文档GIS云套件 —> 附录 —> 定制GIS云套件产品信息 修改即可。