Linux上tk服务的部署
[TOC]
背景
平台支撑中心的很多服务都采用 Docker + Linux 的部署方式,但技术文档《平台支撑中心Linux服务开发指南》中关于服务部署的内容部分已经落时,本文咨询了曾少勤,对该部分进行修正和补充。便于后期查阅。
编译
在本地的 vagrant 上使用 make 命令成功编译出服务。这一步不再赘述。
拷贝
-
将编译结果从 vagrant 拷贝到 Windows 本地:
- 修改当前路径到编译路径
./bin下。 - 使用
cp命令将编译结果拷贝到 vagrant 与 win 的共享路径/vagrant_data下。 - 完整命令如下所示:
1 2 3 4 5 6 7 8 9 10
[root@hansb tkmsgbroadcastservice]# cd bin [root@hansb bin]# ll total 32384 -rwxr-xr-x. 1 root root 12798796 Sep 1 05:56 tkmsgbroadcastservice -rwxr-xr-x. 1 root root 20351088 Aug 29 06:05 tkmsgbroadcastservice_d -rw-r--r--. 1 root root 660 Aug 28 12:58 tkmsgbroadcastservice_d.ini [root@hansb bin]# pwd /home/work/MSG2.0/tkmsgbroadcastservice/bin [root@hansb bin]# cp tkmsgbroadcastservice /vagrant_data [root@hansb bin]#
- 修改当前路径到编译路径
-
此时就可以在 Windows 的本地路径
D:\share_centos7中看到目标文件,如图所示: -
从 Windows 拷贝到 Linux 运维机
192.168.7.84上:-
打开文件管理:Web 堡垒机页面中,在
TK01_DEV_DAT_MF_7_84上右键,点击【文件管理】。 -
拷贝到服务器上:直接将本地的文件拖动到弹出的窗口中,即可完成拷贝。
-
在服务器上查看:通过 “文件管理” 拷贝的文件位于 Linux 的
/home/hansb中,通过ll命令查看。 -
使用
mv命令备份原路径下的服务:mv tktgpstatemachineservice tktgpstatemachineservice_20250922 -
拷贝到打包路径:使用
cp命令将文件拷贝到 Docker 的打包路径中,以 broadcast 服务为例:1 2 3
[root@tk01-dat-test-7-84 TKMSGBroadcast]# cp /home/hansb/tkmsgbroadcastservice /data/tkmsg-new/release/TKMSGBroadcast cp: overwrite ‘/data/tkmsg-new/release/TKMSGBroadcast/tkmsgbroadcastservice’?# y [root@tk01-dat-test-7-84 TKMSGBroadcast]#
-
tgpbroker 的拷贝命令:
- 内网:
1cp /home/hansb/tktgpbrokerservice_d /data/tktgp-docker/main_service/neiwang/nw-broker
- 外网:
1cp /home/hansb/tktgpbrokerservice /data/tktgp-docker/main_service/waiwang/brokertgpstate 的拷贝命令:
- 内网:
1cp /home/hansb/tktgpstatemachineservice_d /data/tktgp-docker/main_service/neiwang/nw-youxi/state-display
- 外网:
1cp /home/hansb/tktgpstatemachineservice /data/tktgp-docker/main_service/waiwang/youxi/state-displaysnslogic 的拷贝命令:
- 内网:
1cp /home/hansb/tksnslogicservice /data/tksns/test/tksnslogicservice/tksnslogicservice
- 外网:
1
打包
-
调用
dc_msg_build.sh进行构建、入库,传入参数1代表版本号 +1,示例如下:1 2 3 4 5 6
[root@tk01-dat-test-7-84 TKMSGBroadcast]# ./dc_msg_build.sh 1 1,tkmsgbroadcastservice,1.0.0.32 Version 1.0.0.32 will be build....... ... v1.0.0.32: digest: sha256:cd4e267f844f7f703f941de124fd3a9077ce02e15b8eb2f4e356a1da330ae8a4 size: 2208 [root@tk01-dat-test-7-84 TKMSGBroadcast]#
-
打包也可以先
buid_version.ini中的版本号,然后通过buid_version.ini传入,完整命令如下:1 2
sudo vim buid_version.ini sudo ./dc_tgp_build.sh buid_version.ini
-
然后等待脚本运行完毕即可。
镜像构建的过程,是在虚拟机
TK01_DAT_TEST_7_84上进行操作的。以
tkmsgbroadcastservice服务为例,构建脚本目录为:内网:
/data/tkmsg-new/test/TKMSGBroadcast外网:
/data/tkmsg-new/release/TKMSGBroadcastDocker 构建脚本由一个 Dockerfile 文件和其它多个辅助 shell 脚本构成(后者是为了方便而非必须),这些脚本链式调用,最终实现仅通过一个脚本调用命令完成文件准备、镜像构建、镜像入库(harbor)、容器启动后动作等多步操作。Dockerfile 具体原理参见其它资料,不在本文介绍。
脚本集合和主脚本
dc_demo_build.sh如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@tk01-dat-test-7-84 TKMSGBroadcast]# ll total 25112 -rw-r--r-- 1 root root 9 Dec 5 2024 buid_version.ini -rwxr-xr-x 1 root root 451 Dec 20 2024 dc_build.sh -rwxr-xr-x 1 root root 477 Dec 20 2024 dc_msg_build.sh -rwxr-xr-x 1 root root 393 Jul 14 2023 dc_stop.sh -rw-r--r-- 1 root root 640 Nov 22 2023 Dockerfile -rwxr-xr-x 1 root root 115 Jul 14 2023 entrypoint.sh -rw-r--r-- 1 root root 44 Dec 27 2023 Service.ini -rwxr-xr-x 1 root root 695 Jul 14 2023 tk_cpu_mem_monitor.sh -rwxr-xr-x 1 root root 1179 Jul 14 2023 tk_daemon.sh -rwxr-xr-x 1 root root 1302 Jul 14 2023 tk_logzip.sh -rwxr-xr-x 1 root root 12798796 Sep 1 15:04 tkmsgbroadcastservice -rw-r--r-- 1 root root 744 Jan 31 2024 tkmsgbroadcastservice.ini -rwxr-xr-x 1 root root 1158 Jul 14 2023 tk_rm_zip_log.sh -rwxr-xr-x 1 root root 328 Jul 14 2023 tk_sudo_monitor.sh其它内容可以看参考文档《平台支撑中心Linux服务开发指南》的 5.4 章节。
服务发布
-
登录不同的 Rancher 连接以升级内网或外网的服务。
-
左侧菜单【工作负载】-【Deployment】,然后在中间的列表中找到目标服务,单击进入。
-
点击页面右上角的三个点,选择【编辑配置】。
-
修改【镜像】中的服务版本号,因为上面编译时是版本号 +1,因此这里也将版本号改大 1 位即可。例如若原本内容为:
1
jcr.mgr.jjworld.tech/dat-msg/tkmsgbroadcastservice:v1.0.0.32
修改为:
1
jcr.mgr.jjworld.tech/dat-msg/tkmsgbroadcastservice:v1.0.0.33
-
点击保存,docker 即开始升级重启。
-
观察是否升级成功。
日志查看
1. Docker 上的服务日志:
- 可以通过 Docker 的
Execute Shell查看当前服务的运行日志,判断服务是否正常启动。 - 日志路径为:
/data/logs/tkserverlog/tkmsgbroadcastservice.log。 - 可使用
cat或tail tkmsgbroadcastservice.log 100查看日志内容。
2. ELK 上的日志
用于下载或查看大量日志,方便定位问题。
参考
《平台支撑中心Linux服务开发指南.docx》 (本文是对这篇文档的补充与校正)
《TKLinuxSDK开发手册.docx》
