如何在 Docker 部署安装 ETL 调度运维工具 TASKCTL
介绍: TASKCTL 是一款批量调度自动化技术专业产品
制作镜像
由于在 dockerhub 上没有查询到有关于 TASKCTL 的镜像就只能自己制作了,但由于本人仅是对软进 行件部署安装,没有实际的应用场景,所有制作的镜像也仅提供了最基础的运行环境。这也是给想要 在 Docker 上部署 TASKCTL 的小伙伴提供一点思路,可以根据个人的不同需求来定制自己的镜像。
准备工作
首先从官网下载安装包 (cir_linux_64_8.0.tar、taskctl-web-8.0.tar)
TASKCTL 下载安装地址 :www.taskctl.com
Docker 拉取一个 centos 的基本镜像:
制作 taskctl-base 镜像
先启动一个 centos 容器,将 cir_linux_64_8.0.tar 包 copy 到容器中。
由于安装包中用到了诸如 ifconfig 、vim 的基础命令(具体需求哪些我也没仔细测),没有的话安 装会报错,所以需要安装一下基础命令。
如果报错:Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
进入/etcyum.repos.d/目录修改 centos 文件内容:
进入容器测试安装一次,如果安装成功那么就可以打包成基础镜像了。安装教程官网也有,就是 linux 下
安装 TASKCTL,这里就简要说一下。
安装 TASKCTL 核心服务
选择 2.自定义安装---->调度服务安装(无高可靠)------>输入 ip(127.17.0.2) ----- >端口
初始化节点并启动
启动 web 服务(安装了 java 环境以后),直接解压 taskctl-web 包运行包下的./startup.sh 脚本。 到此处安装成功。确认环境和安装包都没有问题,那么就可以制作镜像了。
提交镜像
制作基础镜像完成。
启动服务
上面制作的基础镜像中带有核心的安装包和 web 的安装包,满足了 taskctl 基础环境。一下所有 的容器也是在此镜像的基础上搭建的。
新建 Docker 网络
新建所有的 taskctl 服务都是用自建的 docker-network 网络,这样就无需使用 ip 可以直接使用容器 名进行识别,也减少了由于网络不通出现的错误。
启动 task-service 容器
到此访问 IP:8888 就可以使用 TASKCTL 服务了
代理节点
代理节点的安装和 service 的其实大同小异,进入 taskctl-base 中,在安装 task 服务的时候选择代理 节点安装,然后退出容器,保存镜像即可。这样吧 service 节点和代理节点镜像分开,对于批量启动仅 需要修改代理的 IP 即可。
其他
由于本教程仅提供思路,所有就没有上传我的镜像,制作起来也不难。主要遇到的坑在于安装代理 节点的时候容器的 IP 和已安装的节点 IP 不同,这样批量启动的时候每个容器都去重新安装属实不舒服, 提供两个解决思路:
1.使用 Docker 网络,在制作镜像时候配置容器 host:
格式: 镜像名称 ifconfig 中的 IP
2. 使用脚本,在大量启动代理节点时修改/root/taskctl/conf 目录下的配置地址(ifconfig),也 可以使用启动时固定写死 IP
评论