文章预览:

  • 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(部署过程及踩坑问题记录)相关推荐

  1. 使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署

    本博客为O2OA系列教程.O2OA使用手册,教程目录和各章节天梯将在连载完后更新. 使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署 使用O2OA二次开发搭建企业办公平台(二)平台 ...

  2. 分布式任务调度平台XXL-JOB安装部署

    分布式任务调度平台XXL-JOB相关教程: 使用教程 分布式任务调度平台XXL-JOB使用教程_foxofwind的博客-CSDN博客分布式任务调度平台XXL-JOB使用教程https://blog. ...

  3. 数据标注平台(CVAT)安装及踩坑记录

    目录 一.CVAT安装 step1 安装docker step2 获取权限 step3 获取权限 step4 克隆cvat源代码 step5 构建docker镜像 step6 运行Docker容器这一 ...

  4. Hexo自动部署到阿里云(Ubantu16.04)【超详细踩坑记录】

    文章目录 前言 修改Apache端口号 思路 正文 1. 服务器创建git用户 2. 服务器打开RSA认证 2.1 开启认证配置 2.2 建立ssh信任关系 3.创建blog.git空仓库 4. he ...

  5. hexo与github博客搭建+自动部署+反向代理资源找不到问题+各种踩坑

    目录 前言: 需要准备: Hexo的搭建 初始化 主题的选择 上传github 部署自动action 反向代理 成功! 前言: Hexo搭建确实是一个便捷灵活的博客框架,但是里面不免存在很多坑. 在这 ...

  6. Ubuntu 配置大数据平台hadoop hive数据仓库之完整踩坑

    导读:作为大数据界的萌新,这篇文章的写作过程,经历了各种阻挠,也踩了无数坑,俗话说面向CSDN.度娘编程,然后多看官方文档,在遇到各种神奇的坑的时候,搜着搜着就到了国外,刹那间一大堆英文向你飞来,就知 ...

  7. K8S 快速入门(一)虚拟化、容器化构建云计算平台的基本概念及原理解析

    本章主题 1.认识kubernetes (k8s) 在企业中应用场景? ----- 为什么要学习K8s?? 2.云技术(云计算平台) - 虚拟化及虚拟化基本概念及原理 3.云技术(云计算平台) - 容 ...

  8. kubernetes(K8s):管理云平台中多个主机上的容器化的应用

    目录 kubernetes简介 Kubernetes生态 Kubernetes概述 Kubernetes官网 kubernetes简介 kubernetes,简称K8s,是用8代替8个字符" ...

  9. 拉勾网基于UK8S平台的容器化改造实践

    写在前面 拉勾网于2019年3月份开始尝试将生产环境的业务从UHost迁移到UK8S,截至2019年9月份,QA环境的大部分业务模块已经完成容器化改造,生产环境中,后台管理服务已全部迁移到UK8S,部 ...

最新文章

  1. 本地应用 v-for 指令
  2. datatable更新到mysql_SQL通过Datatable更新数据库表内容
  3. Luence初始与简单应用-Document的增删改查.
  4. html表单文本框怎么输出函数值,如何获取用户输入的html文本表单字段传递给javascript函数的值?...
  5. IIS6.0+PHP+Mysql+Zend环境组建[图文]
  6. Android studio 如何查看模拟器里面的文件
  7. 删除win7多余的系统还原点_【Win7封装教程2019版】系列(二)必要的系统调整
  8. Verizon的SDN策略:不鸣则已,一鸣惊人?
  9. 【华为云技术分享】从 Cloud 1.0 到 2.0,云计算的“多元架构命题”
  10. MySQL事件的使用
  11. python爬虫使用模块_10分钟教你Python爬虫(下)--爬虫的基本模块与简单的实战...
  12. Java 对象不使用时,为什么要赋值为 null?
  13. duilib学习 --- 360demo 学习
  14. rake matlab,移动通信系统RAKE接收机的研究,matlab ,rake接收机
  15. 蓝牙 - 通信原理:电磁波 - 无线电波 - ISM - 蓝牙
  16. R语言条形图 bar chart
  17. wps在Linux上使用命令打开文档的方法
  18. 拓嘉启远电商:如何提高拼多多店铺信誉
  19. GAN学习历程之CycleGAN论文笔记
  20. CSS-背景图片 | background-image

热门文章

  1. java日志级别动态调整
  2. php childnodes,如何将childNodes返回的数据转化维数组
  3. 怎样清除excel中的公式
  4. Qt(三)窗口分割、停靠、堆叠
  5. 京东科技集团21篇论文高票入选国际顶会AAAI 2021
  6. 关于webshell
  7. 以太坊简史:因暴雪削弱术士而诞生的千亿美元巨兽
  8. OPENGL报错NVD3DREL: GR-805 : DX9 Overlay is DISABLED
  9. base on 和 be based on 的区别
  10. CTO是什么样的职位?