教程

GIS桌面创建

站点创建

SuperMap iManager可一键创建GIS桌面,请参照以下步骤:

  1. 打开iManager左侧导航栏站点管理
  2. 点击+ 创建

    gisdesktopcreat

  3. 对GIS桌面进行命名,并选择站点类型为GIS桌面

    gisdesktopentername

    高级选项:

    • 命名空间:为创建的站点指定命名空间,不指定则由系统分配命名空间。若指定的命名空间不存在时,将自动创建,并在删除站点时一并删除;已存在的命名空间不会被删除。
    • iDesktopX外部端口:设置访问iDesktopX的端口号,不设置则使用随机端口。
    • FTP外部端口:设置访问FTP的端口号,不设置则使用随机端口。
    • FTP数据传输最小端口:设置FTP传输数据的端口范围最小值,不设置则使用随机端口。
    • FTP数据传输最大端口:设置FTP传输数据的端口范围最大值,不设置则使用随机端口。
    • 启用服务网格:开启服务网格相关功能,可实现服务追踪、服务度量功能。启用服务网格需先将iManager部署包values.yaml文件中deploy_istio_enabled的值改为true,请参见入门->安装部署->安装iManager
    • 资源配额:设置站点可使用的CPU与内存上限。此处的CPU/内存与硬件设施CPU/内存不同,此处CPU/内存为服务节点在Kubernetes环境中占用的CPU/内存,站点总CPU/内存的计算方法为站点内所有服务节点所占CPU/内存的总和。

      • CPU(必填):设置该站点可使用的最大CPU核数。
      • 内存(必填):设置该站点可使用的最大内存。
      • Pod数量:设置该站点可容纳的最大Pod数,Pod为Kubernetes中的最小运行单位,一个Pod可由多个容器组成。
      • 默认容器CPU限制:设置单个容器创建时可用的最大CPU核数。
      • 默认容器内存限制:设置单个容器创建时可用的最大内存。

    注意:
    若站点启用了服务网格,每个服务都会自动创建istio-proxy,一个istio-proxy占用2核CPU、1GB内存,站点总CPU/内存的计算方法为站点内所有服务节点所占CPU/内存的总和加上istio-proxy占用的资源。

  4. 点击确定
  5. 在GIS桌面页面查看状态,当状态由正在创建变为正常,则GIS桌面创建成功,如下图。

    gisdesktopcreating

GIS桌面使用三维场景

在SuperMap iManager创建的GIS桌面上浏览与使用三维场景,需确保某Node节点的机器显卡配有图形处理器(GPU)且docker版本在19.03及以上,并在相关设置后将机器加入Kubernetes集群。以使用英伟达(NVIDIA)显卡为例,请参照以下步骤:

  1. 安装NVIDIA驱动,可参考NVIDIA官方文档。安装完成后可验证驱动安装是否成功:

    nvidia-smi

返回结果可看到驱动版本(Driver Version)、GPU内存使用量(GPU Memory Usage)等信息则安装成功。

  1. 安装NVIDIA Container Toolkit,使得docker可正常访问装有NVIDIA显卡机器的程序,可参考NVIDIA官方文档
  2. 设置NVIDIA作为docker的默认运行时

    3.1 备份daemon.json文件,该文件位于/etc/docker/目录下

    3.2 在该节点机器上指定NVIDIA为docker默认运行时:

    nvidia-ctk runtime configure --runtime=docker

    3.3 重启docker:

    systemctl daemon-reload && systemctl restart docker
  3. 将该机器加入Kubernetes集群,可参考入门->安装部署->安装Kubernetes->安装kubernetes-1.20-CentOS篇Ubuntu篇的“增加node节点”内容。
  4. 在Kubernetes的Dashboard界面,kube-system命名空间下创建资源

    5.1 访问Kubernetes Dashboard,命名空间选择kube-system,点击+创建新资源如下:

     apiVersion: apps/v1
     kind: DaemonSet
     metadata:
       name: nvidia-device-plugin-daemonset
       namespace: kube-system
     spec:
       selector:
         matchLabels:
           name: nvidia-device-plugin-ds
       updateStrategy:
         type: RollingUpdate
       template:
         metadata:
           labels:
             name: nvidia-device-plugin-ds
         spec:
           tolerations:
           - key: nvidia.com/gpu
             operator: Exists
             effect: NoSchedule
           priorityClassName: "system-node-critical"
           containers:
           - image: registry.cn-beijing.aliyuncs.com/nvidia/k8s-device-plugin:v0.14.3
             name: nvidia-device-plugin-ctr
             env:
               - name: FAIL_ON_INIT_ERROR
                 value: "false"
             securityContext:
               allowPrivilegeEscalation: false
               capabilities:
                 drop: ["ALL"]
             volumeMounts:
             - name: device-plugin
               mountPath: /var/lib/kubelet/device-plugins
           volumes:
           - name: device-plugin
             hostPath:
               path: /var/lib/kubelet/device-plugins

    5.2 资源创建完成后可查看GPU的分配情况:

    kubectl describe node <nodeName>
    
    参数说明:
    <nodeName>是该节点名称。

    gpuallocation

  5. 在创建的GIS桌面站点中,编辑idesktopx服务编排,新增环境变量、资源及挂载等,如下图所示

    gisdesktopyaml

    更新完成后,待镜像启动即可正常访问与使用三维场景。