Tutorial

Upgrade Package

The content below is going to introduce how to upgrade SuperMap iManager for Kubernetes and GIS Cloud Suite.

The current version to upgrade: 10.1.x, 10.2.x, 10.2.0a, 11.0.x, 11.1.x,11.2.x

The latest version available for upgrade: 11.2.1

If the current version to upgrade is 10.1.0 and the version is upgraded from version 10.0.1, please refer to Auxiliary Upgrade first, and continue to follow the content below to upgrade.

Required environment variables

PRODUCT: Updated product name. iManager is used by default. You can choose iManager or cloudsuite. KUBERNETESMASTERURL: The k8s master url can be obtained by executing kuberctl cluster-info, for example: http://172.16.112.150:6443 CURRENT_VERSION: The current version to be upgraded, such as 10.1.3, 10.2.0

iManager indicates that the updated product is iManager for k8s Cloudsuite indicates that the updated product is GIS Cloud Suite

Optional environment variables

Optional environment variables are added via the export command before executing the script, e.g. export DEPLOYMENTCENTERPORT=31237 DEPLOYMENTCENTERPORT: The port used to access the deployment center after the upgrade. The default value is 31111. The deployment center is a new service added in 11.2.0-beta, which is used to visually manage the created iManager for k8s or cloud suite. The deployment center can be accessed by accessing the ip of any kubernetes node + the port set by DEPLOYMENTCENTERPORT

Environment preparation

  • The software installation packages required in this article can be downloaded from Baidu Netdisk: https://pan.baidu.com/s/1lWLyyT1jAbADGuxEG3m4gA
    Extraction code: ge4d
  • Images registry. If you use Alibaba Cloud registry for iManager for k8s and GIS Cloud Suite, skip this step. Download the image package corresponding to the upgraded version, such as upgrading from 10.1.0 to 10.2.1, you need to prepare the 10.2.1 image package. Take 10.2.1 for example:

    Path: iManager部署包/iManager 10.2.1/iManager for Kubernetes部署包/supermap-imanager-for-kubernetes-registry-all-10.2.1-linux-x64.tar.gz

    After downloading the image package, copy it to any directory on any machine with Docker service installed and unzip. Enter the unzipped directory, and refer to the readme.txt in the directory to synchronize the image package to the original image registry.

Notices

To ensure a smoother upgrade, please read this note carefully first:

  1. The upgrade script requires that the operating user has the ability to operate the Kubernetes cluster through kubectl and the ability to access Docker.
  2. During the upgrade process (iManager for k8s or GIS Cloud Suite), related services will be restarted and the product cannot be accessed or used.
  3. After upgrading from version 10.1.0 to the latest version using the upgrade package, the silent operation records of the alarm rules in version 10.1.0 will be lost. If necessary, you need to silence again after the upgrade. Version upgrades after 10.1.1 (inclusive) are not affected.
  4. After upgrading from version 10.1.0 to the latest version using the upgrade package, the reports generated by Statistical Report will lose the user operation data before the upgrade. If necessary, please download and save the reports before upgrading. Upgrades to versions after 10.1.1 (inclusive) are not affected.
  5. The “Support disabling of infrequently used services and configuring external third-party services” function cannot be used in an environment that has been upgraded to the latest version using an upgrade package.
  6. After upgrading from a version before 11.2.0-beta to the latest version, some ports exposed by Open Port will be closed.
  7. After upgrading from a version prior to 11.2.0-beta to the latest version, the alarm rules added for basic services and GIS Cloud Suite site services will become invalid. You need to delete the original ones and add them again in the iManager Alarm Service -> Alarm Rules page.
  8. To upgrade from a version earlier than 11.2.0-beta to the latest version, you also need to go to the current directory, create a yamls directory, and move the values.yaml from the old deployment package to the yamls directory, and follow the instructions below. The current directory refers to the directory containing all the files unzipped with this document.

    The deploydisablelog function in the deployment package before 11.1.0 is split into deploydisablefluentdes, deploydisableelasticsearch, and deploydisable_kibana.

    deploydisablemetricsserver is split into deploydisablemetricsserver, deploydisablekubestatemetrics

    If the previously deployed deploydisablelog is true, then these corresponding configurations also need to be changed to true

Upgrade iManager

  1. Please read the Notices.
  2. If the service grid is not enabled in the previous version and you want to enable it in the upgraded version, please download the official deployment package of the version to be upgraded and decompress it. Then execute the following command in the directory after decompressing the new deployment package to enable it:

    kubectl label ns <imanager namespace> istio-injection=enabled --overwrite
    chmod +x ./istio.sh && ./istio.sh open
  3. Execute the following command to start. During the upgrade process, a logs directory will be created in the current directory, which contains the upgrade 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> is the namespace where iManager for k8s is located. The default value is supermap

    After the upgrade is complete, visit the iManager for k8s main page and check whether the Storage Management contains the newly added and unmounted services. Unmounted services can be bound through the Bind operation on the page.

    If the current version is before 11.2.0, you need to add the DEPLOYMENTCENTERPORT environment variable to specify the deployment center port, otherwise the default port is 31111

    export DEPLOYMENT_CENTER_PORT=31111

Upgrade GIS Cloud Suite

如果是使用 GIS 云套件包部署且当前版本低于 11.2.0,需要额外执行以下步骤:

执行以下命令找到环境变量 KIBANA_BASEPATH 并去掉对应值的最后一个引号 “。比如原来的值是 /kibana” 修改为 /kibana

kubectl -n <cloudsuite namespace> \
edit deploy ispeco-dashboard-api
  1. To ensure a smooth upgrade process, please scale StatefulSet cloudsuite-keycloak* and StatefulSet cloudsuite-keycloak-database to 1 before upgrading. If cloudsuite-keycloak is not a StatefulSet type, no processing is required. You can run the following command to check whether cloudsuite-keycloak is a StatefulSet.

    For cloud suites prior to 11.2.0, you need to check StatefulSet keycloak and StatefulSet keycloak-postgresql. Replace cloudsuite-keycloak with keycloak and cloudsuite-keycloak-database with keycloak-postgresql in the following command:

    kubectl -n <cloudsuite namespace> get statefulset cloudsuite-keycloak

    If the above command returns a result, you can scale it to 1 by executing the following command

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

    Execute the following command to scale keycloak-postgresql to 1

    kubectl -n <cloudsuite namespace> scale --replicas=1 statefulset/cloudsuite-keycloak-database

    Wait until the number of cloudsuite-keycloak and cloudsuite-keycloak-database pods remains at 1.

    After the upgrade package is upgraded and the site is accessible, you can scale cloudsuite-keycloak and cloudsuite-keycloak-database back to the original number of replicas.

  2. If the machine learning service has been enabled before the upgrade, please disable it before the upgrade and enable it again after the upgrade is complete.
  3. Serverless technology has been introduced since version 11.0.0.If you want to experience this technology in GIS Cloud Suite, please download the Serverless installation and deployment package from the following network disk path (network disk path: iManager deployment package/software tool package/kubernetes offline installation package/Serverless/kubernetes-serverless-amd64-deploy.zip), deploy it in the environment to be upgraded according to the Serverless deployment package, and then set the environment variables before executing the upgrade script. If you do not want to use it, you can skip this step.

    export ASYNC_FUNCTION_ENABLED=true

    The Serverless deployment package is located in the network disk path: iManager部署包/软件工具包/Kubernetes离线安装包/Serverless.

  4. Before executing the upgrade command, please log out of the web page and close all open pages.
  5. Execute the upgrade command:

    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

    If the upgraded GIS cloud suite is not created on the iManager for Kubernetes page, and there is no deployment center service in the namespace where the cloud suite is located, you also need to add the DEPLOYMENTCENTERPORT environment variable to specify the deployment center port. Otherwise, port 31111 is used by default

    export DEPLOYMENT_CENTER_PORT=31111

    You can check whether a deployment center exists by running the command kubectl -n <cloudsuite namespace> get svc imanager-deployment-center

    <cloudsuite namespace> is the namespace where the GIS cloud suite is located

Appendix

1. Uninstall iManager

1.1 Access the deployment center page through the IP address of any Kubernetes node plus the port set by DEPLOYMENT_CENTER_PORT. On the deployment center page, you can select Uninstall —> Uninstall without a trace. Wait for the uninstallation to complete.

DEPLOYMENT_CENTER_PORT is the port filled in during the upgrade. If it is not filled in, the default port is 31111.

1.2 Download the latest iManager deployment package and decompress it, enter the decompressed directory, edit the values.yaml file according to the deployment package document, save and exit, and uninstall according to the deployment package document

deploy_namespace in the values.yaml file is the namespace where iManager is located

1.3 Find the deployment package of iManager deployed before the upgrade, enter the deployment package, and uninstall it according to the documentation.

2. Uninstall GIS Cloud Suite

If the GIS Cloud Suite is a site created by iManager, you can visit the iManager page and uninstall it by deleting the site.

If the GIS Cloud Suite is deployed through the GIS Cloud Suite package or created and upgraded by the Deployment Center, follow the steps below to uninstall it.

2.1 Access the Deployment Center page through the IP of any Kubernetes node plus the port set by DEPLOYMENT_CENTER_PORT. On the Deployment Center page, you can select Uninstall —> Uninstall without a trace. Wait for the uninstallation to complete.

DEPLOYMENT_CENTER_PORT is the port filled in during the upgrade. If it is not filled in, the default port is 31111.

2.2 Download the latest iManager deployment package and unzip it, enter the unzip directory, edit the values.yaml file according to the deployment package document, save and exit, and uninstall according to the deployment package document

11.2.0 introduces the deployment center, and the function of the original GIS cloud suite deployment package is provided by the iManager deployment package

The deploy_namespace in the values.yaml file is the namespace where the GIS cloud suite is located

2.3 Find the deployment package of the GIS cloud suite deployed before the upgrade, enter the deployment package, and uninstall according to the document

3.Update Service

Updates for the following services are optional, please update as needed.

Update Service Node

You can visit the GIS Cloud Suite details page, click Modify Image to modify the image of the corresponding service to the 10.2.1 image, such as updating the service node “gisapp-portal-default-0”

modifyimageen

Modify the image name to the format <registry>/<namespace>/<image>:<tag>.

<registry> is the address of the upgrade package registry.

<namespace> is the namespace of the upgrade package.

<image> is the image corresponding to the service node. See the following table for the image name corresponding to each service node.

<tag> is the version label of the image, in the format “Version-Architecture”, for example: 10.2.1-amd64, 10.2.1-arm64.

See the table below for the prefix and image corresponding to the service node type:

Node Types Service Name Prefix Image Name
Gisapplication Node gisapp- iserver-gisapplication
Mapping Node gisapp-mapping- iserver-gisapplication-mapping
Data Node gisapp-data- iserver-gisapplication-data-analysis
General Analysis Node gisapp-analysis- iserver-gisapplication-data-analysis
Address Match Analysis Node gisapp-addressmatchanalysis- iserver-gisapplication-analysis-address-match
Spatial Analysis Node gisapp-spatialanalysis- iserver-gisapplication-analysis-spatial
Network Analysis Node gisapp-networkanalysis- iserver-gisapplication-analysis-network
Traffic Transfer Analysis Node gisapp-trafficanalysis- iserver-gisapplication-analysis-traffic-transfer
ArcGIS Geometry Analysis Node gisapp-geometryanalysis- iserver-gisapplication-analysis-geometry
Realspace Node gisapp-realspace- iserver-gisapplication-realspace
Tiles Node gisapp-tiles- iserver-gisapplication-tiles
Dataflow Node gisapp-dataflow- iserver-dataflow

If you use the GIS Cloud Suite package for deployment, you can create a new service node, migrate the services on the original service nodes to the new node, and remove the original nodes.

Update Streaming Service

Please refer to Update Service Node, the service name prefix is iserver-streaming-.

Update Builtin Service

If you need to update the builtin service, disable it and then enable it again.

4.FAQ

  1. What if the image on the homepage of iPortal fails to load after GIS Cloud Suite is upgraded?

    Answer: Please contact technical support staff to handle it.

  2. What if the product information displayed on the page has not changed after the upgrade?

    Answer: a. If the product information of iManager has not changed, please check the basic service page. Find the imanager-dashboard-ui service, and click Modify Image to check whether the image is consistent with the current version after the upgrade. If the image version is the same, please refer to Tutorial —> Appendix —> Customize the Product Information to modify the product information.

    b. If the product information of GIS Cloud Suite has not changed, please check the GIS Cloud Suite details page,Find the ispeco-dashboard-ui service, and click Modify Image to check whether the image is consistent with the current version after the upgrade. If the image version is the same, please refer to GIS Cloud Suite —> Appendix —> Customize the Product Information of GIS Cloud Suite to modify the information.