容器化部署(k8s)任务调度平台xxl-job(部署过程及踩坑问题记录)
文章预览:
- 1 部署过程(下方ip代表服务器的ip哈)
- 1.1 制作服务打包镜像DockerFile
- 1.2 制作执行脚本run.sh
- 1.3 jar包上上传
- 1.4 kuboard创建----配置信息
- 2 踩坑问题记录
- 2.1 日志抛出异常
- 2.2 原因分析
- 2.3 过程分析及解决
- 2.4 执行调度测试
导入sql等过程就不一一讲述了,详情可见官网,只针对与部署过程及问题记录。
- xxl-job官方地址:https://www.xuxueli.com/xxl-job/
1 部署过程(下方ip代表服务器的ip哈)
1.1 制作服务打包镜像DockerFile
#版本信息
#java:latest 为centos官方java运行环境镜像,600多M ,可以提前pull到主机本地
FROM ip:port/library/openjdk:8
MAINTAINER cds "test@qq.com"#实际上可以配置成变量
ADD xxljob-service.jar /usr/local/jar/#开启内部服务端口 xxljob-demo 项目端口#ENV TIME=`date`
CMD java -jar -Duser.timezone=GMT+08 /usr/local/jar/xxljob-service.jar --spring.config.location=/usr/local/jar/config
1.2 制作执行脚本run.sh
#!/bin/bash#服务名称
SERVER_NAME=xxljob-service
DOCKER_IMAGES=`docker images --filter=reference=${SERVER_NAME}'*'|grep -v grep | awk '{print $3}'`#删除镜像
docker rmi -f ${DOCKER_IMAGES}
TIME=`date "+%Y%m%d%H%M"`
IMAGE_NAME=xxljob-service:${TIME}
docker build -t ${IMAGE_NAME} .
echo ${IMAGE_NAME} > './image_name'#harbor项目地址
HARBOR_ADDRESS=ip:port/xxljob/#项目地址
SERVER_ADDRESS="${HARBOR_ADDRESS}${IMAGE_NAME}"#新镜像打标签
docker tag ${IMAGE_NAME} ${SERVER_ADDRESS}#上传到harbor
docker push ${SERVER_ADDRESS}
1.3 jar包上上传
使用ftp上传服务jar包,执行 sh run.sh,生成镜像版本
1.4 kuboard创建----配置信息
后期修改jar包版本的话,重新上传jar包,执行 sh run.sh生成新的镜像版本号即可,去Kuboard点击调整镜像版本即可。
2 踩坑问题记录
2.1 日志抛出异常
按照正常的容器部署之后,我们会发现真正去执行调度的时候它会报以下异常:
2.2 原因分析
原因:大概率是由于你的容器内部端口不通导致,很可能初始创建服务的时候只映射了服务端口,然后去执行调度或查看日志的时候回调xxl-job注册地址端口拒绝连接。
2.3 过程分析及解决
首先,我们看一下服务端执行配置文件,只有一个服务端口,没有什么大问题,这个不用过多解释,给大家贴上地址有兴趣可以慢慢去看一下(只贴了部分相关代码哈)
- xxl-job官方地址:https://www.xuxueli.com/xxl-job/
server:port: 7000
spring:application:name: xxl-job-admin### xxl-job, emailmail:# 设置邮箱主机host: smtp.qq.comport: 465# 设置用户名username: 496875002@qq.comfrom: ${spring.mail.username}# 你的授权码(126 和 163 以及 qq 邮箱 都需要授权码登录,没有授权码的直接登录网页版邮箱设置里设置)# 设置密码,该处的密码是QQ邮箱开启SMTP的授权码而非QQ密码password: jbfdcozgimsubibbproperties:mail:smtp:# 设置是否需要认证,如果为true,那么用户名和密码就必须的,# 如果设置false,可以不设置用户名和密码,当然也得看你的对接的平台是否支持无密码进行访问的。auth: truestarttls:# STARTTLS[1] 是对纯文本通信协议的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。enable: truerequired: truesocketFactory:class: javax.net.ssl.SSLSocketFactory# QQ邮箱必须加此注解ssl:enable: true### xxl-job, access token
xxl:job:accessToken:### xxl-job, i18n (default is zh_CN, and you can choose "zh_CN", "zh_TC" and "en")i18n: zh_CN## xxl-job, triggerpool max sizetriggerpool:fast:max: 200slow:max: 100### xxl-job, log retention dayslogretentiondays: 30logpath: /data/applogs/xxljob/jobhandler
重点看一下客户端配置文件核心配置(只贴了核心部分哈)
server:port: 9095xxl:job:admin:# 这里xjadmin是走的网关(可以忽略我的换成自己的配置) 如果没有网关的话,# 直接http://ip:xxljob服务端口/xxljob服务端名称 上面展示的服务端口是7000,下面就用7000哈addresses: http://ip:7000/xjadmin # xxl-job, access tokenaccessToken:executor:# xxl-job executor appname# 启动之后查看任务调度中心页面 --》执行器管理 --》查看是否存在xxl-job-executor-sat-client执行器,如果不存在手动添加 --》 appname与xxl-job-executor-sat-client相同,注册方式为手动注入,添加机器地址 --》添加成功保存后,查看是否存在 --》可以进行再次编辑,保存后查看onLine地址是否有值,确认端口是否正确appname: processManage# xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is nullhttp://192.168.1.75:9528/address: http://ip:9995/# xxl-job executor server-infoip: ip
# 注册client端口,手动及自动创建端口都为此portport: 9995# xxl-job executor log-pathlogpath: logs/applogs/xxl-job/jobhandler#logpath: E://logs/applogs/xxl-job/jobhandler# xxl-job executor log-retention-dayslogretentiondays: 30
发现,客户端不仅仅是服务端口,还会有一个注册端口,看到这里,想必大家明白了,既然有两个端口,那么我们启动容器时是不是只映射了一个服务端口,当我们去真正调度的时候,会回调到注册端口,这个端口在容器内,是没有办法直接去映射到另一个容器的,所以你是不是忘了客户端的注册端口映射了,所以启动xxl-job客户端需要映射两个端口,可以直接去kuboard去添加一个端口(或者docker run -d -p 9095:9095 -p 9995:9995 ......
),如下图:
2.4 执行调度测试
发现执行成功,查看日志也正常。
到此,问题就解决了。只针对于容器端口不通问题导致的,可能不够细心导致,就当重温一遍学习记录一下,希望大家多多指正!!!
容器化部署(k8s)任务调度平台xxl-job(部署过程及踩坑问题记录)相关推荐
- 使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署
本博客为O2OA系列教程.O2OA使用手册,教程目录和各章节天梯将在连载完后更新. 使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署 使用O2OA二次开发搭建企业办公平台(二)平台 ...
- 分布式任务调度平台XXL-JOB安装部署
分布式任务调度平台XXL-JOB相关教程: 使用教程 分布式任务调度平台XXL-JOB使用教程_foxofwind的博客-CSDN博客分布式任务调度平台XXL-JOB使用教程https://blog. ...
- 数据标注平台(CVAT)安装及踩坑记录
目录 一.CVAT安装 step1 安装docker step2 获取权限 step3 获取权限 step4 克隆cvat源代码 step5 构建docker镜像 step6 运行Docker容器这一 ...
- Hexo自动部署到阿里云(Ubantu16.04)【超详细踩坑记录】
文章目录 前言 修改Apache端口号 思路 正文 1. 服务器创建git用户 2. 服务器打开RSA认证 2.1 开启认证配置 2.2 建立ssh信任关系 3.创建blog.git空仓库 4. he ...
- hexo与github博客搭建+自动部署+反向代理资源找不到问题+各种踩坑
目录 前言: 需要准备: Hexo的搭建 初始化 主题的选择 上传github 部署自动action 反向代理 成功! 前言: Hexo搭建确实是一个便捷灵活的博客框架,但是里面不免存在很多坑. 在这 ...
- Ubuntu 配置大数据平台hadoop hive数据仓库之完整踩坑
导读:作为大数据界的萌新,这篇文章的写作过程,经历了各种阻挠,也踩了无数坑,俗话说面向CSDN.度娘编程,然后多看官方文档,在遇到各种神奇的坑的时候,搜着搜着就到了国外,刹那间一大堆英文向你飞来,就知 ...
- K8S 快速入门(一)虚拟化、容器化构建云计算平台的基本概念及原理解析
本章主题 1.认识kubernetes (k8s) 在企业中应用场景? ----- 为什么要学习K8s?? 2.云技术(云计算平台) - 虚拟化及虚拟化基本概念及原理 3.云技术(云计算平台) - 容 ...
- kubernetes(K8s):管理云平台中多个主机上的容器化的应用
目录 kubernetes简介 Kubernetes生态 Kubernetes概述 Kubernetes官网 kubernetes简介 kubernetes,简称K8s,是用8代替8个字符" ...
- 拉勾网基于UK8S平台的容器化改造实践
写在前面 拉勾网于2019年3月份开始尝试将生产环境的业务从UHost迁移到UK8S,截至2019年9月份,QA环境的大部分业务模块已经完成容器化改造,生产环境中,后台管理服务已全部迁移到UK8S,部 ...
最新文章
- 本地应用 v-for 指令
- datatable更新到mysql_SQL通过Datatable更新数据库表内容
- Luence初始与简单应用-Document的增删改查.
- html表单文本框怎么输出函数值,如何获取用户输入的html文本表单字段传递给javascript函数的值?...
- IIS6.0+PHP+Mysql+Zend环境组建[图文]
- Android studio 如何查看模拟器里面的文件
- 删除win7多余的系统还原点_【Win7封装教程2019版】系列(二)必要的系统调整
- Verizon的SDN策略:不鸣则已,一鸣惊人?
- 【华为云技术分享】从 Cloud 1.0 到 2.0,云计算的“多元架构命题”
- MySQL事件的使用
- python爬虫使用模块_10分钟教你Python爬虫(下)--爬虫的基本模块与简单的实战...
- Java 对象不使用时,为什么要赋值为 null?
- duilib学习 --- 360demo 学习
- rake matlab,移动通信系统RAKE接收机的研究,matlab ,rake接收机
- 蓝牙 - 通信原理:电磁波 - 无线电波 - ISM - 蓝牙
- R语言条形图 bar chart
- wps在Linux上使用命令打开文档的方法
- 拓嘉启远电商:如何提高拼多多店铺信誉
- GAN学习历程之CycleGAN论文笔记
- CSS-背景图片 | background-image