入门

安装iManager

用于在 kubernetes 环境下快速部署 iManager。指南中提供两种iManager的部署方式,常规Linux命令与Helm命令,部署时任选一种。

本文档所需文件均可在以下百度网盘中下载:

前提条件

  1. 已有 kubernetes 环境,版本1.9及以上,且Kubernetes node节点机器与master节点机器设置的时间一致(误差30秒以内)

    如果没有kubernetes环境,请参考《kubernetes离线安装指南-CentOS篇》或《kubernetes离线安装指南-Ubuntu18.04篇》进行安装。

  2. 部署iManager for Kubernetes需要的资源:

    • 处理器核数:4 核+
    • 内存:16 GB+
    • 硬盘:200 GB+(200 GB 为iManager基础数据所需大小,不包括业务数据存储)
    • 通过iManager for Kubernetes创建环境需要的资源要额外预留
  3. 已经下载了 supermap-imanager-for-kubernetes-10.2.0-linux-x64.tar.gz 文件

    • 网盘路径:iManager部署包/iManager 10.2.0/iManager for Kubernetes部署包/supermap-imanager-for-kubernetes-10.2.0-linux-x64.tar.gz
  4. NFS Server离线安装包准备(根据使用的操作系统下载对应版本的NFS Server离线安装包, 如果使用已有的 NFS Server 则忽略该步)

    • 网盘路径(CentOS 7.5系统):iManager部署包/软件工具包/NFS Server离线安装包/nfs-server-offline-centos-7.5.zip
    • 网盘路径(Ubuntu 18.04系统):iManager部署包/软件工具包/NFS Server离线安装包/nfs-server-offline-ubuntu-18.04.zip
  5. 镜像包准备(如果可以访问阿里云仓库,则忽略该步)

    • 网盘路径:iManager部署包/iManager 10.2.0/iManager for Kubernetes部署包/supermap-imanager-for-kubernetes-registry-all-10.2.0-linux-x64.tar.gz
  6. 选择Helm部署时,需有Helm环境(可以执行helm命令)

NFS Server安装

此处以CentOS系统为例,Ubuntu系统安装方法类似。如果已有 NFS 服务器,可以跳过此步

  • 在本机解压nfs-server-offline-centos-7.5.zip,得到supermap-nfs-server文件夹;
  • 拷贝supermap-nfs-server文件夹到任意一台机器 ,然后根据以下命令操作:

    进入supermap-nfs-server文件夹:

    cd supermap-nfs-server

    执行安装脚本:

    sudo chmod +x install.sh && ./install.sh

    安装后nfs的存储位置:/opt/nfs_data

    可以通过以下方法验证nfs安装是否成功

    mkdir test
    mount -t nfs <ip>:/opt/nfs_data test

    注: <ip>是NFS Server所在机器的ip

镜像仓库安装

镜像仓库安装之前,运行sudo docker version,确保Docker已成功安装,如果可以访问阿里云仓库,可以跳过此步

  1. 将镜像包放置在机器(可以是安装了Docker的任意机器)的任意目录,如:/home/,使用以下命令解压(若实际包名与示例中的包名不一致,在执行命令时请替换为实际包名):

    tar -zxf supermap-imanager-for-kubernetes-registry-all-10.2.0-linux-x64.tar.gz
  2. 进入解压后目录

    cd supermap-imanager-docker-images
  3. 在当前目录执行以下命令,进行安装镜像库

    sudo chmod +x startup.sh  && sudo ./startup.sh
  4. 验证镜像仓库安装是否成功

    sudo docker pull <ip>:5000/supermap/tiny-tools:latest

    其中<ip>为所在主机IP ,如果结果无error,则启动成功

iManager安装与使用

计算机需要开放values.yaml文件中的“deployimanagerport”(默认值31100)对应的端口,以及6443、9100、2049(使用NFS存储时开放)端口。如果您是使用阿里云ECS服务器,您需要将以上端口添加到安全组规则中。除此以外,还需要确保 3307 和 9183 端口不被占用。

以下所有命令均以管理员权限执行

  1. 将iManager安装包supermap-imanager-for-kubernetes-10.2.0-linux-x64.tar.gz放置在Kubernetes master节点所在主机的任意目录,使用以下命令解压(若实际包名与示例中的包名不一致,在执行命令时请替换为实际包名):

    tar -zxf supermap-imanager-for-kubernetes-10.2.0-linux-x64.tar.gz
  2. 进入解压后得到的 supermap-imanager-for-kubernetes 文件夹,执行:

    sudo  vi values.yaml

    根据实际情况修改 values.yaml 文件:

    注意:

    1. 符号”:“后面需留一个空格。
    2. values.yaml文件只能在启动iManager前设置,如需再次修改,请修改完后重新执行安装脚本./startup.sh。文件带有默认值,修改时直接修改值即可,不需要移除任何配置。Helm命令更新配置,在supermap-imanager-for-kubernetes文件夹中执行“helm upgrade imanager ../supermap-imanager-for-kubernetes -n supermap”。
    3. “必填”项需要根据实际情况填写或修改;“选填”项可以不修改,若“选填”项中有默认值,请保持默认值,不能删除。
     # 必填,iManager镜像仓库的地址,用于拉取部署iManager所需镜像。默认为阿里云仓库(外网使用时推荐该地址):registry.cn-beijing.aliyuncs.com;
     # 内网仓库配置为<ip>:5000,<ip>为镜像仓库所在机器的IP(镜像仓库安装方法参照前文)。
     deploy_registry: registry.cn-beijing.aliyuncs.com
    
     # 必填,外部访问Kubernetes时用的IP,可以是任意一台Kubernetes节点机器外部可访问的IP,例如,192.168.17.110。
     deploy_kubernetes_public_ip:
    
     # 必填,iManager管理员账户名,用于登录iManager,默认为admin,请自行更改。
     deploy_imanager_user_name: admin
    
     # 必填,iManager管理员密码,用于登录iManager,默认为admin,请自行更改。
     deploy_imanager_password: admin
    
     # 必填(deploy_storage_class_name的值非空时选填),您的NFS Server地址,NFS Server用于存储iManager数据,可以是IP或者域名,例如: 192.168.17.150。NFS Server 安装方法请参照前文。
     # 使用NFS Server存储时,需在Kubernetes的Node节点机器中安装NFS Client。
     deploy_nfs_server:
    
     # 必填,NFS Server提供挂载的路径,默认根路径(/)。实际请根据自己安装的NFS情况来填写,如果使用SuperMap提供的NFS离线安装包安装NFS,则此处地址填写为:/opt/nfs_data。
     deploy_nfs_path: /
    
     # 选填,Kubernetes主节点URL,默认使用https://kubernetes.default.svc,通常保持默认即可;
     # 如果是阿里云等公有云环境,此变量必填,可通过kubectl cluster-info命令获取, 例如,https://192.168.17.110:6443。
     deploy_kubernetes_master_url: https://kubernetes.default.svc
    
     # 选填,iManager创建的GIS云套件配置域名时必填,GIS云套件域名映射的Kubernetes节点IP(即域名在DNS服务器上配置指向的IP)。默认使用第一个Kubernetes节点IP。
     deploy_domain_ip:
    
     # 选填, 您的StorageClass名称,用于存储iManager数据。StorageClass与NFS Server均用于iManager数据存储,如果和NFS Server(deploy_nfs_server)同时存在,优先使用NFS Server作为iManager数据存储。
     deploy_storage_class_name:
    
     # 选填,iManager服务部署到kubernetes的命名空间,可保持默认值supermap,或根据实际需求自定义;
     # 使用Helm命令部署时需单独创建命名空间。
     deploy_namespace: supermap
    
     # 选填,镜像拉取策略,取值范围:[Always|Never|IfNotPresent]。默认为IfNotPresent;
     # Always:总是从镜像仓库拉取最新镜像;
     # Never:使用本地镜像,不从镜像仓库拉取镜像;
     # IfNotPresent:如果本地有可用镜像,使用本地镜像,否则从镜像仓库拉取。
     deploy_image_pull_policy: IfNotPresent
    
     # 选填,镜像拉取Secret,用于拉取私有镜像时进行身份认证。例如:image-pull-secret。配置Secret前,需在Kubernetes命名空间下创建与Secret同名的资源,详情请参见教程->附录->常见问题解答->问题6。
     deploy_image_pull_secret:
    
     # 选填,镜像仓库中存储镜像的命名空间名称,默认为supermap,支持用户自定义。
     deploy_image_namespace: supermap
    
     # 选填,iManager服务类型,取值范围:[NodePort|LoadBalancer],通常保持默认即可;
     # 如果是阿里云等公有云环境这里填LoadBalancer。
     deploy_service_type: NodePort
    
     # 选填,iManager服务协议,取值范围:[https|http],默认http。
     deploy_imanager_service_protocol: http
    
     # 选填,是否禁用iManager日志功能,取值范围:[true|false]。默认为false;
     # true:禁用日志功能;
     # false:开启日志功能。
     deploy_disable_log: false
    
     # 选填,是否禁用iManager告警功能,取值范围:[true|false]。默认为false;
     # true:禁用告警功能;
     # false:开启告警功能。
     deploy_disable_alert: false
    
     # 选填,iManager中单个服务的CPU分配,默认为2核。
     deploy_cpu_limit: 2
    
     # 选填,iManager中单个服务的Memory分配,不能小于4Gi,默认为4Gi。
     deploy_memory_limit: 4Gi
    
     # 选填,指定iManagaer创建的iServer镜像tag。
     deploy_iserver_tag: 10.2.0-amd64
    
     # 选填,指定iManager创建的iPortal镜像tag。
     deploy_iportal_tag: 10.2.0-amd64
    
     # 选填,指定iManager创建的iDesktop镜像tag。
     deploy_idesktop_tag: 10.2.0-amd64
    
     # 选填,指定iManager中iserver_gisapplication的镜像tag。
     deploy_gis_app_tag: 10.2.0-amd64
    
     # 选填,iManager端口,自定义范围:30000-32767,不包括31234,默认31100。如果自定义端口,注意不要与其他变量的端口相同。
     deploy_imanager_port: 31100
    
     # 选填,许可中心是否禁用本地存储,取值范围:[true|false]。默认为false。为true时,必须配置deploy_nfs_server或default_storage_class_name;
     # true:许可中心不使用本地存储;
     # false:许可中心使用本地存储。
     deploy_disable_bslicense_local_volume: false
    
     # 选填,用于HBase性能优化,取值范围:[true|false],默认false【如您没有使用HBase的需求,可以不做修改;如您需要优化内置HBase性能,请将该值设为true,详见教程->附录->常见问题解答->问题9】。
     deploy_disable_hbase_nfs_volume: false
    
     # 选填,企业微信接收消息token,使用微信告警功能时必填。企业微信告警配置请参见SuperMap iManager在线帮助文档。
     deploy_weixin_token:
    
     # 选填,企业微信的企业ID,使用微信告警功能时必填。
     deploy_weixin_corp_id:
    
     # 选填,企业微信接收消息EncodingAESKey,使用微信告警功能时必填。
     deploy_weixin_encoding_aes_key:
    
     # 选填,企业微信接收消息的部门id,使用微信告警功能时必填。
     deploy_weixin_to_party:
    
     # 选填,企业微信接收消息的应用id,使用微信告警功能时必填。
     deploy_weixin_agent_id:
    
     # 选填,企业微信接收消息的应用secret,使用微信告警功能时必填。
     deploy_weixin_api_secret:
    
     # 选填,钉钉接收消息的webhook,使用钉钉告警功能时必填。钉钉告警配置请参见SuperMap iManager在线帮助文档。
     deploy_dingtalk_webhook:
    
     # 选填,钉钉接收消息的secret,使用钉钉告警功能时必填。
     deploy_dingtalk_secret:
    
     # 选填,设置系统时区。填写系统时区目录(/usr/share/zoneinfo/)下时区文件的相对路径,如Asia/Shanghai、America/New_York,默认为Asia/Shanghai。
     deploy_timezone: Asia/Shanghai
    
     # 选填,是否禁用metrics_server服务,metrics_server用于Kubernetes资源监控,取值范围:[true|false]。默认false;
     # true:禁用metrics_server服务;
     # false:开启metrics_server服务。
     deploy_disable_metrics_server: false
    
     # 选填,是否开启服务网格(Istio)功能,取值范围:[true|false]。默认true;
     # 如果是ARM版,不支持Istio功能,没有该参数;
     # true:开启服务网格功能;
     # false:禁用服务网格功能。
     deploy_istio_enabled: true
    
     # 选填,是否开启服务网格(Istio)中的ingressgateway(入口网关)和egressgateway(出口网关),取值范围:[true|false]。默认true。该变量只有当deploy_istio_enabled为true时生效;
     # 如果是ARM版,不支持Istio功能,没有该参数;
     # true:开启ingressgateway和egressgateway;
     # false:禁用ingressgateway和egressgateway。
     deploy_istio_enable_ingress_egress: true
    
     # 选填,是否开启服务网格(Istio)中的Kiali和Tracing服务,这两个服务用于服务追踪,取值范围:[true|false]。默认true。该变量只有当deploy_istio_enabled为true时生效;
     # 如果是ARM版,不支持Istio功能,没有该参数;
     # true:开启Kiali和Tracing服务;
     # false:禁用Kiali和Tracing服务。
     deploy_istio_enable_kiali_tracing: true
    
     # 选填,服务网格(Istio)中ingressgateway的服务类型,取值范围:[NodePort|LoadBalancer],通常保持默认即可。该变量只有当deploy_istio_enabled和deploy_istio_enable_ingress_egress同时为true时生效;
     # 如果是ARM版,不支持Istio功能,没有该参数;
     # 如果是阿里云等公有云环境,这里填LoadBalancer。
     deploy_istio_ingress_service_nodetype: NodePort

    修改完成后保存并退出:敲击键盘Esc键,命令行输入“:wq”后敲击回车键。

  3. 安装 iManager(以下命令均在supermap-imanager-for-kubernetes文件夹中执行)

    安装iManager时,可选择常规Linux命令安装,或Helm命令安装,任选其一。

    常规Linux命令安装

    sudo chmod +x startup.sh && ./startup.sh

    Helm命令安装

    3.1 创建命令空间supermap(可以自定义,需同步修改下文中的命名空间)

    kubectl create ns supermap

    3.2 安装iManager

    helm install imanager ../supermap-imanager-for-kubernetes -n supermap

    3.3 查看iManager是否安装成功

    helm list -n supermap

    helmlist

    执行完命令后的进度条仅供参考,实际服务启动情况请参见kubernetes 的 dashboard 界面
    安装完成后,可以通过 http://<ip>:31100 访问 iManager 页面 ,如果deploy_imanager_service_protocol的值为https,就通过: https://<ip>:31100 访问 iManager 页面 . <ip>: 为 kubernetes Master 节点的 ip.

    登录账号参见 values.yaml 文件中配置的iManager管理员账户信息

  4. 配置许可

    安装好 iManager 之后,还需要导入许可才能使用。这里以导入试用许可为例。

    首先去 SuperMap 官网申请试用许可或购买正式许可。

    访问iManager 页面,在没有许可的情况下会自动跳转到许可中心(Web版)页面,点击激活更新,参照操作流程导入许可

    activationlicense

    导入成功之后,在许可状态可以看见许可信息

    licensestatus1

    安装完成之后就可以正常使用 iManager

附录

1.删除iManager环境

运行 shutdown.sh 文件可以删除 iManager 环境:

chmod +x shutdown.sh && ./shutdown.sh

如需彻底删除iManager,即删除iManager创建的相关环境等,请增加-v参数:

chmod +x shutdown.sh && ./shutdown.sh -v

使用Helm命令安装的iManager,删除命令(使用该命令,命名空间与用户创建的环境不会被删除):

helm uninstall imanager -n supermap