一、镜像制作
1、将安装介质o2server-5.0.3-linux.zip上传至镜像制作服务器上。(上传目录为/paas/xxhpaas/moka/o2oa)
2、使用unzip命令解压安装包,参考命令:unzip o2server-5.0.3-linux.zip
3、制作DockerFile文件,文件内容如下:
Dockerfile说明
3.1、FROM为基础镜像名称,我这边拿了一个已经做好的tomcat的镜像,镜像中包括Tomcat、JDK、Linux操作系统
3.2、PAAS平台不允许使用root用户启动应用,所以我创建了一个新的用户 gx
3.3、将解压后的o2server拷贝到容器中(使用COPY命令),一开始尝试直接将安装包unzip到容器里面,试验了几次都报错后才使用的copy方式。
3.3、为新建的用户gx赋予o2server目录的管理权限,能够读、写、执行权限。
3.4、容器启动的时候将用户切换为 gx(1000为gx的用户编号,测试paas平台要求使用"user 用户编号"方式切换用户)
3.5、容器启动后的ENTRYPOINT为执行启动o2oa的脚本 start_linux.sh
4、镜像制作命令:docker build -t o2oa_1.0.0 .
5、镜像制作完毕后将镜像存储为tar包进行保存,保存命令:docker save o2oa_1.0.0 |gzip > o2oa_1.0.0.tar
6、检查镜像是否能够正常启动,使用docker run命令在打包设备上通过镜像创建容器。操作步骤如下
♦检查镜像名称,命令:docker images |grep o2oa 如下图
♦启动容器:docker run 镜像ID & ,实际命令如下图:
♦检查容器是否启动,获取容器ID号。docker ps lgrep 镜像ID 实际命令如下图。能够看到容器已经能够正常启动。显示结果的第一列为容器ID
♦进入容器 命令:docker exec -it 容器号 /bin/bash ,实际命令如下:(能够看到控制台已经切换为gx用户)
♦检查o2oa的启动日志,查看应用启动是否正常
♦检查完毕后记得将容器销毁,参考命令:docker kill 容器ID
二、PAAS平台部署
1、将镜像文件(o2oa_1.0.0.tar)上传至PAAS平台的镜像仓库。使用PAAS平台提供的镜像资产上载工具(如下图)
2、创建三套7层负载,分别提供给center (端口:30112)、application(端口:30113)、web (端口:30110)应用使用。具体如下:
3、在PAAS平台上创建应用,关键配置信息如下:
3.1 、CPU和内存需要选择得当,测试环境我使用了2C 6G内存,容器的镜像使用之前上传的o2oa_1.0.1版本
3.2、挂载配置文件node_127.0.0.1.json、externalDataSources.json (将基础服务器配置文件和数据库文件放入PAAS平台管理。在容器启动后,应用启动前PAAS平台会将配置文件写入/data/o2oaserver/config目录下)
node_127.0.0.1.json 配置文件修改内容:将center端口设置为30112、将application端口设置为 30113、将web端口修改为30110
externalDataSources.json 配置文件内容为oracle相关数据库地址、端口、实例、用户名和口令配置
3.3、将康检查设置,目前设置的是主机命令检查,由于o2oa启动需要时间,后续可以根据启动时间设置首次检查延迟时间,并将主机命令检查调整为http检查。
3.4、应用与7层负载关联配置, o2oa的3个http服务对应3个7层负载,上下文转发规则为 “/” 。配置界面如下
3.5、应用能够正常启动,访问效果如下。目测相关网络请求无报错信息。
三、共享存储处理
1、dockerfile修改,在容器中创建共享存储的根目录/appdata,并赋予管理权限。
2、容器编排阶段挂载externalStorageSources.json配置文件,配置文件写入/data/o2server/config目录下。
配置文件内容样例如下,需要将个JSON对象的节点中的"protocol"设置为file、将“prefix” 设置为具体共享存储的目录地址。
3、在容器编排阶段,增加/appdata的共享存储挂载。
四、关于容器节点自动扩展的问题
目前咨询产品组,容器化的部署可以不去定制修改node_ip.json,统一使用node_127.0.0.1.json即可。在PAAS平台上设置POD数量即可,如下图:
设置后2个POD能够正常启动,如下图:
具体系统使用有无问题还需要详细的测试。:)
(转自公众号:浙江兰德网络)