作者:John
SuperMap iManager如何从v11.0.0升级到v11.2.1
SuperMap iManager for K8s 11.2.0已推出可视化部署功能,而之前版本的非可视化部署方式则需要通过其他方式进行升级。接下来,我将带大家一起将 iManager for K8s 11.0.0 升级到 11.2.1 版本。文中所需的软件安装包均可在百度网盘: iManager 部署包中找到。
1、待升级环境( iManager for k8s 11.0.0 )介绍
当前待升级环境的 iManager 和创建的云套件,是使用百度网盘包 supermap-imanager-for-kubernetes-11.1.1-linux-x64.tar.gz 包部署的。
2、环境准备
2.1 下载升级包
根据项目情况选择所需的升级包,本文需要将iManager升级到11.2.1 ,且Linux 是x64架构,故选择 supermap-imanager-upgrade-11.2.1-linux-x64.tar.gz 升级包
2.2 导入镜像包
如果是在线环境,或者能拉取到阿里镜像的环境,该步骤可以忽略;如果是离线环境就需要导入镜像,具体使用参考博客:iManager离线镜像仓库如何导入到私有仓库及使用。本文 iManager 使用是阿里云镜像仓库,故不需要导入离线镜像。
为确保顺利地完成升级,建议升级前需先仔细阅读 iManager 升级注意事项。
3、升级 iManager
3.1 下载将升级包并解压
3.2 配置 values.yaml 文件
进入升级包的解压目录下,创建 yamls 目录,将待(旧)升级部署包中的 values.yaml 拷贝到 yamls 目录下。
将 values.yaml 中的yamldeploy_*_tag修改成升级后的tag,本文既是:11.2.1-amd64。
本文的待升级iManager是11.0.0 < 11.1.0 故还需要对“deploy_disable_log” 和 “eploy_disable_metrics_server” 按下图进行拆分修改。
如果待升级版本未开启服务网格,而想要升级后的版本开启该功能,则需要下载将升级版本的正式部署包并解压,在新部署包解压后目录下执行以下命令开启。如果前后均不开启,则忽略该步骤,本文升级前后版本均不开启该功能,故调过该步骤。
kubectl label ns <imanager namespace> istio-injection=enabled --overwrite
chmod +x ./istio.sh && ./istio.sh open
3.3 配置环境变量
升级iManager还需配置如下环境变量去指定当前环境信息,改无论在那个目录下执行均可。
# 设置需要升级的产品名称
export PRODUCT=iManager
# 设置kubernetes master url 地址,可在k8s master节点上执行:kubectl cluster-info 获取到
export KUBERNETES_MASTER_URL=<kubernetes master url>
# 设置当前iManager版本,即为待升级 iManager 版本
export CURRENT_VERSION=<current version>
# 设置 iManager 所在的命名空间,默认是 supermap
export NAMESPACE=<imanager namespace>
# 设置部署中心端口,当前版本小于 11.2.0 时需要增加 DEPLOYMENTCENTERPORT 环境变量来指定部署中心端口
export DEPLOYMENT_CENTER_PORT=31111
3.4 升级 & 验证
进入iManager升级包,执行chmod +x upgrade.sh && ./upgrade.sh
升级iManager。升级过程中产生的日志位于iManager升级包下的 logs 目录中。iManager升级完成后日志中会有“升级任务执行成功”提示,如下图。如果升级失败会自动回退到之前待升级版本的iManager,可通过升级日志去排查升级失败的原因,修改后再次执行升级脚本升级iManager。
升级完整后iManager概览页面
4、升级云套件
云套件升级步骤和iManager基本一致,都是需下载对应的升级包、修改values.yaml配置文件、添加环境变量、执行升级脚本,这些步骤。
4.1 下载将升级包并解压 & 配置 values.yaml 文件
该步骤与上文 3.1 和 3.2 章节一致,如果是通过独立部署包部署的云套件则参考 3.1 和 3.2 章节进行操作。而本文的云套件是通过iManager创建而来的,在上面升级iManager时候已经操作了,故调过该步骤。
4.2 配置环境变量
云套件升级所需的环境变量与iManager升级的参数是一致的,只是对应产品和命名空间不一样而已。
# 设置需要升级的产品名称
export PRODUCT=cloudsuite
# 设置kubernetes master url 地址,可在k8s master节点上执行:kubectl cluster-info 获取到
export KUBERNETES_MASTER_URL=<kubernetes master url>
# 设置当前iManager版本,即为待升级 iManager 版本
export CURRENT_VERSION=<current version>
# 设置 iManager 所在的命名空间
export NAMESPACE=<imanager namespace>
# 设置部署中心端口,当前版本小于 11.2.0 时需要增加 DEPLOYMENTCENTERPORT 环境变量来指定部署中心端口
export DEPLOYMENT_CENTER_PORT=31111
4.3 修改 keycloak 和 keycloak-database 副本数
11.2.0 之前的云套件的keycloak 和其依赖的数据对应的有状态副本集(StatefulSet)名称是 keycloak 和 keycloak-postgresql,而11.2.0之后则是 cloudsuite-keycloak 和 cloudsuite-keycloak-database。
# 查看云套件有状态副本集中 keycloak 和 keycloak-database 的副本数
kubectl get statefulsets -n <云套件命名空间> | grep keycloak
# 将有状态副本集的 keycloak 和 keycloak-database 的副本数置1,如果上一步查询出来的结果都是 1/1, 则可以不用执行改指令去修改。
kubectl -n <云套件命名空间> scale --replicas=l statefulset/<有状态副本集服务名称>
4.4 升级 & 验证
与iManager升级一样,均是进入iManager升级包,执行chmod +x upgrade.sh && ./upgrade.sh
升级云套件。升级过程中产生的日志位于iManager升级包下的 logs 目录中。
升级过程中的其他注意事项,请参考iManager帮助文档:SuperMap iManager for Kubernetes 和 GIS 云套件升级说明