教程
升级包篇
用于SuperMap iManager for Kubernetes 和 GIS 云套件升级说明。
要升级的当前版本: 10.1.x, 10.2.x, 10.2.0a, 11.0.x, 11.1.x,11.2.x
可升级至最新版本: 11.2.1
如果要升级的当前版本为 10.1.0,并且该版本是从 10.0.1 版本升级上来的,请先参考辅助升级进行操作,再参考此说明进行升级。
必需的环境变量
PRODUCT:更新的产品名称,默认使用iManager,可选iManager,cloudsuite KUBERNETESMASTERURL:k8s master url,可以通过执行kuberctl cluster-info获得,例如:http://172.16.112.150:6443 CURRENT_VERSIONN:待升级的当前版本,比如10.1.3,10.2.0
iManager表示更新的产品为iManager for k8s cloudsuite表示更新的产品为GIS云套件
可选环境变量
可选环境变量在执行脚本之前通过
export
命令添加,例如 export DEPLOYMENTCENTERPORT=31237 DEPLOYMENTCENTERPORT:用于升级之后访问部署中心的端口。默认为31111。部署中心为11.2.0新增的服务,用于可视化管理创建的iManager for k8s或者云套件。 部署中心可通过访问kubernetes任意节点的ip+DEPLOYMENTCENTERPORT设置的端口访问
环境准备
- 文中所需的软件安装包均可在百度网盘中下载:
https://pan.baidu.com/s/1lWLyyT1jAbADGuxEG3m4gA
提取码:ge4d -
镜像包。如果 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
将镜像包同步到原有镜像仓库。
注意事项
为确保更顺利地完成升级,升级前请先仔细阅读此注意事项:
- 升级脚本要求操作用户具备通过 kubectl 操作 Kubernetes 集群的能力以及访问 Docker 的能力。
- 升级(iManager for k8s 或 GIS 云套件)过程中相关服务会重新启动,此时产品无法访问与使用。
- 使用升级包从 10.1.0 版本升级至最新版本后,10.1.0版本中对报警规则的静默操作记录会丢失,如有需要,升级后需再次静默。10.1.1(含)之后的版本升级不受影响。
- 使用升级包从 10.1.0 版本升级至最新版本后,统计报表 生成的报表会丢失升级之前的用户操作数据,如有需要,请在升级前下载报表保存。10.1.1(含)之后的版本升级不受影响。
- 使用升级包升级到最新版本的环境无法使用”支持禁用不常用服务和配置外部已有第三方服务“该功能。
- 从 11.2.0 之前的版本升级到最新版本后,部分开启端口所暴露的端口将会关闭。
- 从 11.2.0 之前的版本升级到最新版本后,对于基础服务和 GIS 云套件站点的服务添加的告警规则会失效,需要在 iManager 报警服务 -> 报警规则页面删除原有的并重新添加
-
想要从 11.2.0 之前的版本升级到最新版本,还需要进入
当前目录
下,创建 yamls 目录,并将旧部署包中的 values.yaml 放到 yamls 目录下,按照以下说明进行处理。当前目录
指的是包含和本文档一同解压的所有文件的目录。11.1.0 之前部署包中的 deploydisablelog 拆分成 deploydisablefluentdes, deploydisableelasticsearch, deploydisable_kibana。
deploydisablemetricsserver 拆分成 deploydisablemetricsserver, deploydisablekubestatemetrics
如之前部署的 deploydisablelog 为 true,则这几个相应的配置也需要修改成 true
升级iManager
- 阅读 注意事项
-
如果之前的版本未开启服务网格,而想要在升级之后的版本开启,请下载将要升级版本的正式部署包并解压,在新部署包解压后目录下执行以下命令开启
kubectl label ns <imanager namespace> istio-injection=enabled --overwrite chmod +x ./istio.sh && ./istio.sh open
-
然后执行以下命令启动。升级过程中会在
当前目录
创建 logs 目录,里面包含升级日志export PRODUCT=iManager export KUBERNETES_MASTER_URL=<kubernetes master url> export CURRENT_VERSION=<current version> export NAMESPACE=<imanager namespace> chmod +x upgrade.sh && ./upgrade.sh
<imanager namespace>
是 iManager for k8s 所在命名空间,默认是 supermap升级完成后,请访问 iManager for k8s 主页面,检查
存储管理
中是否包含新增的且未挂载的服务,没有挂载的服务可以通过页面上的“绑定”操作进行绑定当前版本小于 11.2.0 时需要增加 DEPLOYMENTCENTERPORT 环境变量来指定部署中心端口,否则默认使用 31111 端口
export DEPLOYMENT_CENTER_PORT=31111
升级GIS云套件
如果是使用 GIS 云套件包部署且当前版本低于 11.2.0,需要额外执行以下步骤:
执行以下命令找到环境变量
KIBANA_BASEPATH
并去掉对应值的最后一个引号 “。比如原来的值是 /kibana” 修改为 /kibanakubectl -n <cloudsuite namespace> \ edit deploy ispeco-dashboard-api
-
为保证升级过程顺利,升级前请将 StatefulSet cloudsuite-keycloak 和 StatefulSet cloudsuite-keycloak-database 伸缩成 1。如果 cloudsuite-keycloak 不是 StatefulSet 类型,则不需要处理。可以通过执行下面命令查看 cloudsuite-keycloak 是否为 StatefulSet
11.2.0 之前的云套件需要检查 StatefulSet keycloak 和 StatefulSet keycloak-postgresql,将下面命令的 cloudsuite-keycloak 替换为 keycloak,cloudsuite-keycloak-database 替换为 keycloak-postgresql
kubectl -n <cloudsuite namespace> get statefulset cloudsuite-keycloak
如果上述命令有结果返回,则可以通过执行下面命令伸缩成 1
kubectl -n <cloudsuite namespace> scale --replicas=1 statefulset/cloudsuite-keycloak
执行下面命令将 keycloak-postgresql 伸缩成 1
kubectl -n <cloudsuite namespace> scale --replicas=1 statefulset/cloudsuite-keycloak-database
等待 cloudsuite-keycloak 和 cloudsuite-keycloak-database pod 数量剩余 1。
等待升级包升级完成,站点可访问之后,可将 cloudsuite-keycloak 和 cloudsuite-keycloak-database 伸缩会原来副本数
- 如升级之前已经开启机器学习服务,请在升级之前关闭机器学习服务,待升级之后再开启。
-
11.0.0 引入了 Serverless 技术,如果想要在 GIS 云套件中体验该技术,请从网盘以下路径下载 Serverless 安装部署包(网盘路径:iManager部署包/软件工具包/kubernetes离线安装包/Serverless/kubernetes-serverless-amd64-deploy.zip),依据 Serverless 部署包在要升级的环境部署,之后在执行升级脚本之前设置环境变量。如果不想使用可以跳过这一步
export ASYNC_FUNCTION_ENABLED=true
Serverless 部署包位于网盘路径: iManager部署包/软件工具包/Kubernetes离线安装包/Serverless 目录下
- 执行升级命令之前,请先在网页登出,并关闭所有打开页面。
-
执行升级命令
export PRODUCT=cloudsuite export KUBERNETES_MASTER_URL=<kubernetes master url> export NAMESPACE=<cloudsuite namespace> export CURRENT_VERSION=<current version> chmod +x upgrade.sh && ./upgrade.sh
如升级的 GIS 云套件不是在 iManager for Kubernetes 页面创建,并且云套件所在命名空间没有部署中心服务,还需要增加 DEPLOYMENTCENTERPORT 环境变量来指定部署中心端口,否则默认使用 31111 端口。
export DEPLOYMENT_CENTER_PORT=31111
是否存在部署中心可通过
kubectl -n <cloudsuite namespace> get svc imanager-deployment-center
查看<cloudsuite namespace>
为 GIS 云套件所在命名空间
附录
1. 卸载iManager
1.1 通过 Kubernetes 任意节点的 ip 加上 DEPLOYMENT_CENTER_PORT
设置的端口访问部署中心页面。在部署中心页面可以选择卸载 —> 无痕卸载。等待卸载完成
DEPLOYMENT_CENTER_PORT
为升级时填写的端口,不填默认使用 31111
1.2 下载最新的 iManager 部署包并解压,进入解压目录,根据部署包文档编辑 values.yaml 文件,保存退出后,按照部署包文档卸载
values.yaml 文件中的
deploy_namespace
为 iManager 所在的命名空间
1.3 找到升级前部署 iManager 的部署包,进入部署包,按照文档进行卸载
2. 卸载 GIS 云套件
如 GIS 云套件是 iManager 创建的站点,可访问 iManager 页面,通过删除站点的方式卸载。
如 GIS 云套件是通过 GIS 云套件包部署或者由部署中心创建并升级按以下步骤卸载,
2.1 通过 Kubernetes 任意节点的 ip 加上 DEPLOYMENT_CENTER_PORT
设置的端口访问部署中心页面。在部署中心页面可以选择卸载 —> 无痕卸载。等待卸载完成
DEPLOYMENT_CENTER_PORT
为升级时填写的端口,不填默认使用 31111
2.2 下载最新的 iManager 部署包并解压,进入解压目录,根据部署包文档编辑 values.yaml 文件,保存退出后,按照部署包文档卸载
11.2.0 引入部署中心,原 GIS 云套件部署包的作用由 iManager 部署包提供
values.yaml 文件中的
deploy_namespace
为 GIS 云套件所在的命名空间
2.3 找到升级前部署 GIS 云套件的部署包,进入部署包,按照文档进行卸载
3.更新服务
以下服务的更新可选,请根据需要进行更新。
更新服务节点
访问 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-。
更新内置服务
如您需要更新内置服务,禁用后重新开启即可。
4.常见问题解答
-
云套件升级后,iportal页面图片加载失败,页面无法正常显示中英文怎么办?
答:请联系技术支持人员协调处理。
-
如果升级之后查看页面,发现页面上展示的产品信息没有变化怎么办?
答: a. 如果是 iManager 的产品信息未变更,请查看基础服务页面,找到 imanager-dashboard-ui 服务,点击修改镜像查看镜像是否和升级后的当前版本一致。如果镜像版本一致,请参考帮助文档教程 —> 附录 —> 定制iManager产品信息 修改产品信息即可。
b. 如果是 GIS 云套件信息未变更,请访问 iManager for k8s 的 GIS 云套件详情页面,找到 ispeco-dashboard-ui 服务,点击修改镜像查看镜像是否和升级后的当前版本一致。如果镜像版本一致,那么参考帮助文档GIS云套件 —> 附录 —> 定制GIS云套件产品信息 修改即可。