SuperMapiCloudManager是超图GIS云管理系统,它依托于云计算IaaS平台,可快捷地搭建云GIS系统,一目了然地运维和监控其中的GIS应用,让你不再操心云GIS中心的部署、运维细节。
日前,SuperMapiCloudManager 8C SP2正式发布,最大的亮点是新增对Docker应用容器环境的对接,使云GIS可快速利用上Docker轻量、灵活、高性能等优势。
l 新增对 Docker 平台(含Docker集群)的支持
在继支持国产的华为FusionComputeR3/R5、商业的VMware vSphere、开源的OpenStack之后,iCloudManager在8C SP2中新增了对Docker的对接。
Docker是dotCloud 开源的一个基于LXC(Linux容器虚拟技术) 的高级容器引擎,它的初衷是将各种应用程序和他们所依赖的运行环境打包成标准的Container,进而发布到不同的平台上运行,Container发挥类似虚拟机的作用,但它启动得更快、需要更少的资源。
我们不仅制作了各种GIS的Docker镜像,供GIS客户在Docker环境中直接使用;而且在iCloudManager中进行了封装,UI操作界面跟之前基本无差别;iCloudManager还支持对Docker集群(Swarm)对接、部署。
既然新特性最大的变化在于容器支持,我们就感受一下,如何通过iCloudManager8C SP2来管理Docker云。
环境需求
1、将下载好的SuperMap iCloudManager 8C SP2(OVF包)导入到Workstation虚拟机 ——192.168.13.201
2、通过WorkStation虚拟机安装一个Docker环境(单机即可)——192.168.13.212
该环境我安装的最新的Docker1.11版本。
root@docker1:~# docker version Client: Version: 1.11.1 API version: 1.23 Go version: go1.5.4 Git commit: 5604cbe Built: Tue Apr 26 23:30:23 2016 OS/Arch: linux/amd64 Server: Version: 1.11.1 API version: 1.23 Go version: go1.5.4 Git commit: 5604cbe Built: Tue Apr 26 23:30:23 2016 OS/Arch: linux/amd64首先,将下载好的iserver_c802.tar文件导入到docker环境中。
然后通过docker load命令将镜像文件加载到docker images中
root@docker1:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 8f1bd21bd25c 2 days ago 188 MB root@docker1:~# docker load -i /root/iserver_c802.tar 05b940eef08d: Loading layer [==================================================>] 196.9 MB/196.9 MB db6b2d84f3c6: Loading layer [==================================================>] 208.9 kB/208.9 kB 1b82ce694c3b: Loading layer [==================================================>] 4.608 kB/4.608 kB 5f70bf18a086: Loading layer [==================================================>] 1.024 kB/1.024 kB 3aa87058c49f: Loading layer [==================================================>] 3.072 kB/3.072 kB 1c282f64a03c: Loading layer [==================================================>] 271.4 MB/271.4 MB 9aac7be6f471: Loading layer [==================================================>] 22.47 MB/22.47 MB 004fd6c7b442: Loading layer [==================================================>] 106.4 MB/106.4 MB 12a6532b58a6: Loading layer [==================================================>] 12.6 MB/12.6 MB 1d26d2c7d51a: Loading layer [==================================================>] 699.7 MB/699.7 MB cd29bb5b2163: Loading layer [==================================================>] 3.072 kB/3.072 kB 90b10b52ef12: Loading layer [==================================================>] 398.8 kB/398.8 kB 9bf558bb6b59: Loading layer [==================================================>] 273.2 MB/273.2 MB 3f71e3e1f253: Loading layer [==================================================>] 7.168 kB/7.168 kB 23a38bfe9b46: Loading layer [==================================================>] 37.38 kB/37.38 kB 3761bfb7fedf: Loading layer [==================================================>] 19.97 kB/19.97 kB 691f4b99176c: Loading layer [==================================================>] 25.09 kB/25.09 kB 767ad3a2ec2c: Loading layer [==================================================>] 25.09 kB/25.09 kB 0be3faa6e502: Loading layer [==================================================>] 2.56 kB/2.56 kB ca8d91fa8b97: Loading layer [==================================================>] 2.56 kB/2.56 kB 40f0549ea190: Loading layer [==================================================>] 35.84 kB/35.84 kB root@docker1:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 8f1bd21bd25c 2 days ago 188 MB supermap/iserver c802 322cacd8b1ca 4 days ago 1.559 GB加载完毕可以看到,iServer镜像已经添加上来。
3、直接在浏览器输入http://192.168.13.201:8080/进入iCloudManager for Docker的预配置页面
注意:
在iCloudManager配置过程中,需要获得Docker服务器的服务端口,默认Docker是没有绑定服务端口(例如5001),
Docker安装后默认监听unix://var/run/docker.sock ,只允许本地的root连接。
可以在/etc/default/docker文件中配置DOCKER_OPTS,自定义服务端口,如下绑定的端口为5001。
DOCKER_OPTS=" -H 0.0.0.0:5001 -H unix:///var/run/docker.sock
配置后要重启Docker使配置生效
sudo service docker restart
也可以通过命令行 Docker -H 参数指定,如下绑定的端口为5001。这种方式重启Docker后会失效,推荐通过修改配置文件的方法。
sudo docker daemon -H tcp://0.0.0.0:5001 -H unix:///var/run/docker.sock
对Docker服务器进行了绑定端口后,我们才能进入下一步。
前面已经将iServer容器镜像导入进去,所以,在配置关联模板可以直接获得容器服务器的导入镜像。
由于iCM的OVF自带Zabbix,所以相关配置只需要获得iCM 的IP即可。
对于配置IP过程,默认iCM对Docker的连接时通过端口映射的方式,而没有为每个容器设置固定共享容器服务器的网络IP,这样做可以节省大量的IP资源。
4、创建iServer容器实例测试
测试过程与云平台比较类似,创建一个容器实例,设置相关配置要求,
查看任务进度,
进入容器的管理页面
可以直接点击服务地址,进入最新的iServer管理Manager
接下来,我们查看一下Docker服务器的容器实例
root@docker1:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2e4f3789fbb2 322cacd8b1ca "/bin/sh -c /opt/run." 3 minutes ago Up 3 minutes 0.0.0.0:44466->8090/tcp sm_iserver-44466
问题来了
你现在测试只是连接一个Docker 服务器,如果我是一个Docker集群,该如何操作呢?iCloudManager支持以Swarm管理机器,所以如果你的Docker云是通过Swarm来配置的,只需要输入Swarm的管理IP来代替上述的单个Docker服务器,那么在创建容器实例的调度、资源管理都会通过Swarm来进行托管了。