入门

安装GIS云套件-K3S环境

用于在 Linux 单机环境下快速部署 GIS 云套件,GIS云套件基于 K3S 进行部署,关于 K3S 的更多信息请参考K3S官网

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

前提条件

  1. Linux 操作系统(建议使用 Ubuntu 18.04 或者 Ubuntu 16.04)
  2. 已经下载了 supermap-giscloudsuite-with-k3s-11.1.0-linux-x64.tar.gz 文件
  3. 规格:

    • 处理器数量:4 核+
    • 内存:8 GB+(规格越大性能越好)
    • 硬盘:80 GB+
    • 开启内置环境需要的资源要额外预留
  4. 镜像包准备(如果可以访问阿里云仓库,则忽略该步。具体使用方法请参见网盘链接“组合镜像包”目录下“组合镜像使用说明.txt”)

    • supermap-imanager-for-kubernetes-registry-all-11.1.0-linux-x64.tar.gz
    • supermap-imanager-for-kubernetes-images-bigdata-11.1.0-linux-x64.tar.gz
    • supermap-imanager-for-kubernetes-images-machinelearning-11.1.0-linux-x64.tar.gz

镜像仓库安装

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

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

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

    cd supermap-imanager-for-kubernetes-registry-all-11.1.0-linux-x64
  3. 在当前目录执行以下命令,进行安装镜像库

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

    docker pull <ip>:5000/supermap/scratch:latest-amd64

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

    如果是在ARM环境下部署,请将镜像tag“latest-amd64”更改为“latest-arm64”。

GIS云套件安装与使用

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

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

  1. 将下载的文件解压(若实际包名与示例中的包名不一致,在执行命令时请替换为实际包名),得到”supermap-giscloudsuite-with-k3s-11.1.0-linux-x64”文件夹

    tar -zxf supermap-giscloudsuite-with-k3s-11.1.0-linux-x64.tar.gz
  2. 进入 supermap-giscloudsuite-with-k3s-11.1.0-linux-x64 文件夹,执行:

    vi values.yaml

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

    注意:

    1. 符号”:“后面需留一个空格。
    2. 以下文件只能在启动GIS云套件前设置,如需再次修改,请修改完后重新执行安装脚本./startup.sh。文件带有默认值,修改时直接修改值即可,不需要移除任何配置。
    3. “必填”项需要根据实际情况填写或修改;“选填”项可以不修改,若“选填”项中有默认值,请保持默认值,不能删除。
    4. “必填”项参数为前3项
     # 必填,GIS云套件镜像仓库的地址,用于拉取部署GIS云套件所需镜像。默认为阿里云仓库(外网使用时推荐该地址):registry.cn-beijing.aliyuncs.com。
     # 内网仓库配置为<ip>:5000,<ip>为镜像仓库所在机器的IP(镜像仓库安装方法参照前文)。
      deploy_registry: registry.cn-beijing.aliyuncs.com
    
     # 必填,外部可访问的K3s安装机器IP,启动时会再次确认,eg: 192.168.17.110。
     deploy_kubernetes_public_ip:
    
     # 必填,GIS云套件管理员账户名,用于登录GIS云套件,默认为user_admin,建议执行安装脚本前进行更改。
     deploy_ispeco_user_name: user_admin
    
     # 选填,您的NFS Server地址,用于存储GIS云套件数据,可以是IP或者域名,例如: 192.168.17.150。
     # 如果配置NFS Server,需要在机器中手动安装NFS Client。
     deploy_nfs_server:
    
     # 选填,NFS Server提供挂载的路径,默认根路径:/。如果不配置NFS,默认使用hostPath数据卷,位于本地/opt/giscloudsuite目录。
     deploy_nfs_path: /
    
     # 选填,K3s主节点URL,默认使用https://kubernetes.default.svc,保持默认即可。
     deploy_kubernetes_master_url: https://kubernetes.default.svc
    
     # 选填,镜像仓库的服务协议,取值范围:[http|https],默认https。若使用SuperMap镜像包安装的镜像仓库,请配置为http。
     deploy_registry_protocol: https
    
     # 选填, 您的StorageClass名称,用于存储GIS云套件数据。StorageClass与NFS Server均用于GIS云套件数据存储,如果和NFS Server(deploy_nfs_server)同时存在,优先使用NFS Server作为GIS云套件数据存储。
     deploy_storage_class_name:
    
     # 选填,应用部署的K3s命名空间,可保持默认giscloudsuite,或根据实际需求自定义。
     deploy_namespace: giscloudsuite
    
     # 选填,GIS云套件服务协议,取值范围:[https|http],默认http。
     deploy_service_protocol: http
    
     # 选填,镜像拉取策略,取值范围:[Always|Never|IfNotPresent],默认为IfNotPresent。
     # Always:总是从镜像仓库拉取最新镜像;
     # Never:使用本地镜像,不从镜像仓库拉取镜像;
     # IfNotPresent:如果本地有可用镜像,使用本地镜像,否则从镜像仓库拉取。
     deploy_image_pull_policy: IfNotPresent
    
     # 选填,镜像拉取Secret,用于拉取私有镜像时进行身份认证。例如:image-pull-secret。配置Secret前,需在Kubernetes命名空间下创建与Secret同名的资源,详情请参见GIS云套件->附录->常见问题解答->问题12。
     deploy_image_pull_secret:
    
     # 选填,镜像仓库中存储镜像的命名空间名称,默认为supermap,支持用户自定义。
     deploy_image_namespace: supermap
    
     # 选填,Keycloak服务类型,取值范围:[NodePort|LoadBalancer],通常保持默认即可。
     deploy_keycloak_service_type: NodePort
    
     # 选填,GIS云套件中单个服务的CPU分配,默认为1核。
     deploy_cpu_limit: 1
    
     # 选填,GIS云套件中单个服务的Memory分配,不能小于4Gi,默认为4Gi。
     deploy_memory_limit: 4Gi
    
     # 选填,指定GIS云套件中iserver_gisapplication的镜像tag。
     deploy_gis_app_tag: 11.1.0-amd64
    
     # 选填,keycloak端口,自定义范围:30000-32767,不包括 31234,默认32221。如果自定义端口,注意不要与其他配置项的端口相同。
     deploy_keycloak_port: 32221
    
     # 选填,管理UI端口,自定义范围:30000-32767,不包括 31234,默认32222。如果自定义端口,注意不要与其他配置项的端口相同。
     deploy_gateway_port: 32222
    
     # 选填,许可中心端口,自定义范围:30000-32767,不包括 31234,默认32223。如果自定义端口,注意不要与其他配置项的端口相同。
     deploy_bslicense_ui_port: 32223
    
     # 选填,是否禁用iPortal的相关服务,取值范围:[true|false],默认true;
     # true:禁用iPortal相关服务;
     # false:不禁用iPortal相关服务。
     deploy_disable_iportal: true
    
     # 选填,许可中心是否禁用本地存储,取值范围:[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,详见GIS云套件->附录->常见问题解答->问题15】。
     deploy_disable_hbase_nfs_volume: false
    
     # 选填,GIS云套件配置域名时必填,GIS云套件域名映射的Kubernetes节点IP(即域名在DNS服务器上配置指向的IP)。默认使用第一个Kubernetes节点IP。
     deploy_domain_ip:
    
     # 选填,配置GIS云套件访问入口的域名,比如:imanager.iservergateway.com。不填使用IP加端口访问。
     deploy_gateway_domain:
    
     # 选填,GIS云套件访问入口域名对应的证书路径,只有配置了GIS云套件域名(deploy_gateway_domain),该配置项才会生效。证书应当与values.yaml存放于同一目录下,填写时使用相对路径,比如:gateway/tls.crt。
     deploy_gateway_certificate_path:
    
     # 选填,GIS云套件访问入口域名对应证书的私钥路径,只有配置了GIS云套件域名(deploy_gateway_domain),该配置项才会生效。私钥应当与values.yaml存放于同一目录下,填写时使用相对路径,比如:gateway/tls.key。
     deploy_gateway_private_key_path:
    
     # 选填,配置访问Keycloak的域名,比如:imanager.keycloak.com。不填使用IP加端口访问。
     deploy_keycloak_domain:
    
     # 选填,Keycloak安全中心域名对应的证书路径,只有配置了Keycloak安全中心域名(deploy_gateway_domain),该配置项才会生效。证书应当与values.yaml存放于同一目录下,填写时使用相对路径,比如:keycloak/tls.crt。
     deploy_keycloak_certificate_path:
    
     # 选填,Keycloak安全中心域名对应证书的私钥路径,只有配置了Keycloak安全中心域名(deploy_gateway_domain),该配置项才会生效。私钥应当与values.yaml存放于同一目录下,填写时使用相对路径,比如:keycloak/tls.key。
     deploy_keycloak_private_key_path:
    
     # 选填,设置系统时区。填写系统时区目录(/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
    
     # 选填,是否启用无服务器(Serverless)异步调用函数,系统有Dapr环境时可启用。取值范围:[true|false]。默认为空;
     # true:启用无服务器异步函数;
     # false:禁用无服务器异步函数;
     # 如果该配置为空,系统会根据用户环境自动识别并填充。
     deploy_async_function_enabled: 
    
     # 选填,是否启用无服务器(Serverless)同步调用函数,系统有Knative环境时可启用。取值范围:[true|false]。默认为空;
     # true:启用无服务器同步函数;
     # false:禁用无服务器同步函数;
     # 如果该配置为空,系统会根据用户环境自动识别并填充。
     deploy_sync_function_enabled:

    备注:

    1. 系统默认使用的密码是Supermap1997,请及时修改。
    2. 长期使用同一密码是密码被破解的主要原因。在安全性要求极高的环境中,默认的管理员密码,应自行修改并定期更新。
    3. 如果密码过于简单,则可能被恶意用户解密和暴力破译,窃取重要信息及盗用资源,存在安全风险。更新密码时请尽量设置得复杂。

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

  3. 安装

    下面命令均需要管理员权限执行

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

    startup.sh 脚本在执行过程中,会根据传入的仓库地址和协议,更新配置,以便正确的拉取镜像。中途还会确认使用的 ip,该 ip 可以被本机以外访问。

    安装完成后,可以通过 http://<ip>:32222 访问GIS云套件页面,通过 http://<ip>:32223 访问许可中心(Web版)页面。<ip>: 为安装 k3s 机器的 ip。如果deploy_service_protocol的值为https,则通过 https://<ip>:32222https://<ip>:32223 访问。

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

  4. 配置许可

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

    首先先去 SuperMap 官网申请试用许可。

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

    licensemanagement

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

    licensestatus

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

附录

  1. 添加或修改http仓库到K3S

    编辑”/var/lib/rancher/K3S/agent/etc/containerd/config.toml.tmpl”

    如果文件不存在,执行下面命令

    cp /var/lib/rancher/K3S/agent/etc/containerd/config.toml /var/lib/rancher/K3S/agent/etc/containerd/config.toml.tmpl

    找到”plugins.cri.registry”,根据实际情况修改(registry.ispeco.com 使用实际值替换)

    [plugins.cri.registry]
     [plugins.cri.registry.mirrors]
       [plugins.cri.registry.mirrors."registry.ispeco.com"]
         endpoint = ["http://registry.ispeco.com"]

    如果有多个仓库,可以继续添加”plugins.cri.registry.mirrors.xxx”,以192.168.17.150:5001仓库为例

    [plugins.cri.registry]
     [plugins.cri.registry.mirrors]
       [plugins.cri.registry.mirrors."registry.ispeco.com"]
         endpoint = ["http://registry.ispeco.com"]
       [plugins.cri.registry.mirrors."192.168.17.150:5001"]
         endpoint = ["http://192.168.17.150:5001"]

    修改之后重启 K3S

    systemctl restart K3S
  2. 运行”shutdown.sh”文件可以删除GIS云套件

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

    如需彻底删除GIS云套件,请增加”-v”参数:

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

    如需重新部署GIS云套件环境,在执行完上述命令后,请卸载 K3S 环境再重新部署。

  3. 卸载 K3S 环境

    在系统任务目录下执行下面命令卸载 K3S 环境,此命令会删除 K3S 相关的数据(拉取的镜像,配置等)

    K3S-uninstall.sh
  4. 基础服务访问地址(<ip>: 为安装 K3S 机器的 ip):

    服务 地址
    GIS云套件 http://:32222 或 https://:32222
    许可中心 http://:32223 或 https://:32223