一、镜像制作

1、将安装介质o2server-5.0.3-linux.zip上传至镜像制作服务器上。(上传目录为/paas/xxhpaas/moka/o2oa)
2、使用unzip命令解压安装包,参考命令:unzip o2server-5.0.3-linux.zip
3、制作DockerFile文件,文件内容如下:
image2020-7-1_16-16-57.png
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 .
image2020-7-1_17-39-9.png
5、镜像制作完毕后将镜像存储为tar包进行保存,保存命令:docker save o2oa_1.0.0 |gzip > o2oa_1.0.0.tar
6、检查镜像是否能够正常启动,使用docker run命令在打包设备上通过镜像创建容器。操作步骤如下
♦检查镜像名称,命令:docker images |grep o2oa 如下图
image2020-7-1_17-40-6.png

♦启动容器:docker run 镜像ID & ,实际命令如下图:
image2020-7-1_17-42-13.png

♦检查容器是否启动,获取容器ID号。docker ps lgrep 镜像ID 实际命令如下图。能够看到容器已经能够正常启动。显示结果的第一列为容器ID
image2020-7-1_17-44-8.png

♦进入容器 命令:docker exec -it 容器号 /bin/bash ,实际命令如下:(能够看到控制台已经切换为gx用户)
image2020-7-1_17-46-17.png

♦检查o2oa的启动日志,查看应用启动是否正常
image2020-7-1_17-48-43.png
image2020-7-1_17-49-9.png
image2020-7-1_17-48-22.png


♦检查完毕后记得将容器销毁,参考命令:docker kill 容器ID
image2020-7-1_17-49-58.png

二、PAAS平台部署

1、将镜像文件(o2oa_1.0.0.tar)上传至PAAS平台的镜像仓库。使用PAAS平台提供的镜像资产上载工具(如下图)
image2020-7-1_16-44-55.png

2、创建三套7层负载,分别提供给center (端口:30112)、application(端口:30113)、web (端口:30110)应用使用。具体如下:
image2020-7-1_17-10-26.png

3、在PAAS平台上创建应用,关键配置信息如下:
3.1 、CPU和内存需要选择得当,测试环境我使用了2C 6G内存,容器的镜像使用之前上传的o2oa_1.0.1版本
image2020-7-1_16-58-42.png
3.2、挂载配置文件node_127.0.0.1.json、externalDataSources.json (将基础服务器配置文件和数据库文件放入PAAS平台管理。在容器启动后,应用启动前PAAS平台会将配置文件写入/data/o2oaserver/config目录下)
image2020-7-1_16-59-54.png

node_127.0.0.1.json 配置文件修改内容:将center端口设置为30112、将application端口设置为 30113、将web端口修改为30110
image2020-7-1_17-3-24.pngimage2020-7-1_17-3-54.pngimage2020-7-1_17-4-39.png
externalDataSources.json 配置文件内容为oracle相关数据库地址、端口、实例、用户名和口令配置
image2020-7-1_17-6-7.png
3.3、将康检查设置,目前设置的是主机命令检查,由于o2oa启动需要时间,后续可以根据启动时间设置首次检查延迟时间,并将主机命令检查调整为http检查。
image2020-7-1_17-6-52.png

3.4、应用与7层负载关联配置, o2oa的3个http服务对应3个7层负载,上下文转发规则为 “/” 。配置界面如下
image2020-7-1_17-13-2.png
image2020-7-1_17-13-17.png
image2020-7-1_17-13-31.png
3.5、应用能够正常启动,访问效果如下。目测相关网络请求无报错信息。
image2020-7-1_17-23-43.png

三、共享存储处理

1、dockerfile修改,在容器中创建共享存储的根目录/appdata,并赋予管理权限。
image2020-7-2_16-29-3.png
2、容器编排阶段挂载 externalStorageSources.json配置文件,配置文件写入/data/o2server/config目录下。
配置文件内容样例如下,需要将个JSON对象的节点中的"protocol"设置为file、将“prefix” 设置为具体共享存储的目录地址。
image2020-7-2_16-25-27.png
3、在容器编排阶段,增加/appdata的共享存储挂载。
image2020-7-2_16-27-54.png

四、关于容器节点自动扩展的问题

目前咨询产品组,容器化的部署可以不去定制修改node_ip.json,统一使用node_127.0.0.1.json即可。在PAAS平台上设置POD数量即可,如下图:
image2020-7-2_17-15-16.png

设置后2个POD能够正常启动,如下图:
image2020-7-2_17-16-21.png
具体系统使用有无问题还需要详细的测试。:)

results matching ""

    No results matching ""