搭建 xxl-job 需要三个文件

  • xxl-job.yaml:部署 xxl-job-admin
  • mysql.yaml:部署 mysql,这个数据库为 xxl-job-admin 专用
  • init-db.yml:数据库初始化脚本,新建必须的表并插入必须的数据

xxl-job.yaml

---
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: xxl-job-adminname: xxl-job-admin
spec:replicas: 1selector:matchLabels:app: xxl-job-adminstrategy:rollingUpdate:maxSurge: 25%maxUnavailable: 25%type: RollingUpdatetemplate:metadata:labels:app: xxl-job-adminspec:containers:- image: xuxueli/xxl-job-admin:2.3.0imagePullPolicy: IfNotPresentname: xxl-job-adminports:- containerPort: 8080name: tcp-8080protocol: TCPenv:- name: PARAMSvalue: "--spring.datasource.url=jdbc:mysql://xxl-job-mysql:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=root --spring.datasource.password=xxl_job@2020!( "---
apiVersion: v1
kind: Service
metadata:name: xxl-job-admin
spec:ports:- name: tcp-8080port: 8080protocol: TCPtargetPort: 8080selector:app: xxl-job-adminsessionAffinity: Nonetype: ClusterIP---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: xxl-job-ingress
spec:ingressClassName: nginx # 指定哪个ingressclass,不同ingressclass的rules格式略有差异rules:- host: xxljob.prod.api.gd-njc.comhttp:paths:- backend:service:name: xxl-job-adminport:number: 8080path: /pathType: ImplementationSpecific

mysql.yaml
storageClass 使用本地缓存 local-path,可参考 k8s 安装本地 storageClass

---
apiVersion: apps/v1
kind: StatefulSet
metadata:labels:app: xxl-job-mysqlname: xxl-job-mysql
spec:podManagementPolicy: OrderedReadyreplicas: 1revisionHistoryLimit: 10selector:matchLabels:app: xxl-job-mysqlserviceName: xxl-job-mysqltemplate:metadata:labels:app: xxl-job-mysqlname: xxl-job-mysqlspec:containers:- image: mysql:5.7.26imagePullPolicy: IfNotPresentname: xxl-job-mysqlenv:- name: MYSQL_DATABASEvalue: "xxl_job"- name: MYSQL_ROOT_PASSWORDvalue: "xxl_job@2020!("resources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:- mountPath: /var/lib/mysqlname: xxl-job-mysql-data- mountPath: /docker-entrypoint-initdb.d/name: xxl-job-init-dbdnsPolicy: ClusterFirstrestartPolicy: Alwaysvolumes:- configMap:name: xxl-job-init-dbitems:- key: init-db.sqlmode: 429path: init-db.sqldefaultMode: 429name: xxl-job-init-dbupdateStrategy:type: OnDeletevolumeClaimTemplates:- metadata:name: xxl-job-mysql-dataspec:accessModes:- ReadWriteOnceresources:requests:storage: 5GistorageClassName: local-pathvolumeMode: Filesystem
---
apiVersion: v1
kind: Service
metadata:name: xxl-job-mysql
spec:ports:- name: tcp-3306port: 3306protocol: TCPtargetPort: 3306selector:app: xxl-job-mysqlsessionAffinity: Nonetype: ClusterIP

init-db.yml

apiVersion: v1
data:init-db.sql: |CREATE database if NOT EXISTS `xxl_job` default character set utf8mb4 collate utf8mb4_unicode_ci;use `xxl_job`;SET NAMES utf8mb4;CREATE TABLE `xxl_job_info` (`id` int(11) NOT NULL AUTO_INCREMENT,`job_group` int(11) NOT NULL COMMENT '执行器主键ID',`job_desc` varchar(255) NOT NULL,`add_time` datetime DEFAULT NULL,`update_time` datetime DEFAULT NULL,`author` varchar(64) DEFAULT NULL COMMENT '作者',`alarm_email` varchar(255) DEFAULT NULL COMMENT '报警邮件',`schedule_type` varchar(50) NOT NULL DEFAULT 'NONE' COMMENT '调度类型',`schedule_conf` varchar(128) DEFAULT NULL COMMENT '调度配置,值含义取决于调度类型',`misfire_strategy` varchar(50) NOT NULL DEFAULT 'DO_NOTHING' COMMENT '调度过期策略',`executor_route_strategy` varchar(50) DEFAULT NULL COMMENT '执行器路由策略',`executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler',`executor_param` varchar(512) DEFAULT NULL COMMENT '执行器任务参数',`executor_block_strategy` varchar(50) DEFAULT NULL COMMENT '阻塞处理策略',`executor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '任务执行超时时间,单位秒',`executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失败重试次数',`glue_type` varchar(50) NOT NULL COMMENT 'GLUE类型',`glue_source` mediumtext COMMENT 'GLUE源代码',`glue_remark` varchar(128) DEFAULT NULL COMMENT 'GLUE备注',`glue_updatetime` datetime DEFAULT NULL COMMENT 'GLUE更新时间',`child_jobid` varchar(255) DEFAULT NULL COMMENT '子任务ID,多个逗号分隔',`trigger_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '调度状态:0-停止,1-运行',`trigger_last_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '上次调度时间',`trigger_next_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '下次调度时间',PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;CREATE TABLE `xxl_job_log` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`job_group` int(11) NOT NULL COMMENT '执行器主键ID',`job_id` int(11) NOT NULL COMMENT '任务,主键ID',`executor_address` varchar(255) DEFAULT NULL COMMENT '执行器地址,本次执行的地址',`executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler',`executor_param` varchar(512) DEFAULT NULL COMMENT '执行器任务参数',`executor_sharding_param` varchar(20) DEFAULT NULL COMMENT '执行器任务分片参数,格式如 1/2',`executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失败重试次数',`trigger_time` datetime DEFAULT NULL COMMENT '调度-时间',`trigger_code` int(11) NOT NULL COMMENT '调度-结果',`trigger_msg` text COMMENT '调度-日志',`handle_time` datetime DEFAULT NULL COMMENT '执行-时间',`handle_code` int(11) NOT NULL COMMENT '执行-状态',`handle_msg` text COMMENT '执行-日志',`alarm_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '告警状态:0-默认、1-无需告警、2-告警成功、3-告警失败',PRIMARY KEY (`id`),KEY `I_trigger_time` (`trigger_time`),KEY `I_handle_code` (`handle_code`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;CREATE TABLE `xxl_job_log_report` (`id` int(11) NOT NULL AUTO_INCREMENT,`trigger_day` datetime DEFAULT NULL COMMENT '调度-时间',`running_count` int(11) NOT NULL DEFAULT '0' COMMENT '运行中-日志数量',`suc_count` int(11) NOT NULL DEFAULT '0' COMMENT '执行成功-日志数量',`fail_count` int(11) NOT NULL DEFAULT '0' COMMENT '执行失败-日志数量',`update_time` datetime DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `i_trigger_day` (`trigger_day`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;CREATE TABLE `xxl_job_logglue` (`id` int(11) NOT NULL AUTO_INCREMENT,`job_id` int(11) NOT NULL COMMENT '任务,主键ID',`glue_type` varchar(50) DEFAULT NULL COMMENT 'GLUE类型',`glue_source` mediumtext COMMENT 'GLUE源代码',`glue_remark` varchar(128) NOT NULL COMMENT 'GLUE备注',`add_time` datetime DEFAULT NULL,`update_time` datetime DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;CREATE TABLE `xxl_job_registry` (`id` int(11) NOT NULL AUTO_INCREMENT,`registry_group` varchar(50) NOT NULL,`registry_key` varchar(255) NOT NULL,`registry_value` varchar(255) NOT NULL,`update_time` datetime DEFAULT NULL,PRIMARY KEY (`id`),KEY `i_g_k_v` (`registry_group`,`registry_key`,`registry_value`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;CREATE TABLE `xxl_job_group` (`id` int(11) NOT NULL AUTO_INCREMENT,`app_name` varchar(64) NOT NULL COMMENT '执行器AppName',`title` varchar(12) NOT NULL COMMENT '执行器名称',`address_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '执行器地址类型:0=自动注册、1=手动录入',`address_list` text COMMENT '执行器地址列表,多地址逗号分隔',`update_time` datetime DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;CREATE TABLE `xxl_job_user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(50) NOT NULL COMMENT '账号',`password` varchar(50) NOT NULL COMMENT '密码',`role` tinyint(4) NOT NULL COMMENT '角色:0-普通用户、1-管理员',`permission` varchar(255) DEFAULT NULL COMMENT '权限:执行器ID列表,多个逗号分割',PRIMARY KEY (`id`),UNIQUE KEY `i_username` (`username`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;CREATE TABLE `xxl_job_lock` (`lock_name` varchar(50) NOT NULL COMMENT '锁名称',PRIMARY KEY (`lock_name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;INSERT INTO `xxl_job_group`(`id`, `app_name`, `title`, `address_type`, `address_list`, `update_time`) VALUES (1, 'xxl-job-executor-sample', '示例执行器', 0, NULL, '2018-11-03 22:21:31' );INSERT INTO `xxl_job_info`(`id`, `job_group`, `job_desc`, `add_time`, `update_time`, `author`, `alarm_email`, `schedule_type`, `schedule_conf`, `misfire_strategy`, `executor_route_strategy`, `executor_handler`, `executor_param`, `executor_block_strategy`, `executor_timeout`, `executor_fail_retry_count`, `glue_type`, `glue_source`, `glue_remark`, `glue_updatetime`, `child_jobid`) VALUES (1, 1, '测试任务1', '2018-11-03 22:21:31', '2018-11-03 22:21:31', 'XXL', '', 'CRON', '0 0 0 * * ? *', 'DO_NOTHING', 'FIRST', 'demoJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2018-11-03 22:21:31', '');INSERT INTO `xxl_job_user`(`id`, `username`, `password`, `role`, `permission`) VALUES (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', 1, NULL);INSERT INTO `xxl_job_lock` ( `lock_name`) VALUES ( 'schedule_lock');commit;kind: ConfigMap
metadata:name: xxl-job-init-db

k8s 部署 xxl-job-admin:2.3.0相关推荐

  1. k8s部署zkui 2.0

    下载地址 https://github.com/DeemOpen/zkui maven构建 [root@k8s-n0 zkui]# pwd /home/k8s-yaml/zk-ui2/zkui [ro ...

  2. xxl-job本地部署到容器部署到k8s部署

    1,环境要求环境 Maven3+ Jdk1.8+ Mysql5.7+ 我的环境采用的mysql 8.0   maven 3.0        openjdk1.8 虚拟机 10.1.234.141  ...

  3. K8S部署工具:KubeOperator安装部署

    K8S部署工具:KubeOperator安装部署 硬件要求⚓︎ 最小化配置 角色 CPU核数 内存 系统盘 数量 部署机 4 8G 100G 1 Master 4 8G 100G 1 Worker 4 ...

  4. docker 部署rabbitmq,k8s部署rabbitmq集群,跟踪和监控rabbitmq

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 rabbit原理和架构可以参考https://blog.csdn.net/luanpeng825485697/article/details/8208 ...

  5. 记一次阿里云k8s部署-测试存储

    记一次阿里云k8s部署 阿里云资源准备 服务器 ip 角色 资源 192.168.1.160 master1 2核4G 192.168.1.161 master2 2核4G 192.168.1.162 ...

  6. 高可用集群篇(五)-- K8S部署微服务

    高可用集群篇(五)-- K8S部署微服务 一.K8S有状态服务 1.1 什么是有状态服务 1.2 k8s部署MySQL 1.2.1 创建MySQL主从服务 1.2.2 测试主从配置 1.2.3 k8s ...

  7. 原生K8S部署pig微服务项目

    原生K8S部署pig微服务项目 简介 项目地址:码云 Pig微服务项目 基于 Spring Cloud 2021 .Spring Boot 2.7. OAuth2 的 RBAC 权限管理系统 基于数据 ...

  8. k8s部署apollo

    k8s以Deployment方式部署apollo.最新版本:1.7.1 public-service-ns.yaml apiVersion: v1 kind: Namespace metadata:n ...

  9. 微服务探索之路03篇-docker私有仓库Harbor搭建+Kubernetes(k8s)部署私有仓库的镜像

    目录: 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernetes ...

  10. k8s部署SpringBoot项目

    一.前言 本文将介绍如何通过CICD将SpringBoot框架的Web项目发布到k8s集群中,文章中有使用到eureka的注册,如果对如何在k8s集群中部署eureka,那么可以参考本人的 k8s部署 ...

最新文章

  1. 云计算学习(2-4)云计算的案例
  2. pyspider 安装 和 快速开始
  3. c语言程序设计网络作业,北语网院17春《C语言程序设计》作业_2满分答案
  4. 关乎Python lambda你也看得懂
  5. html5圆盘抽奖,HTML5 Canvas圆盘抽奖运用DEMO
  6. 【运动学】基于matlab平抛小球地面跳跃规律【含Matlab源码 981期】
  7. 如何复制百度文库上的文本
  8. ROS NOETIC 思岚激光雷达A2M8启动历程
  9. APM2.8 Rover 自己主动巡航车设计(固件安装和设置)
  10. LeetCode Word Abbreviation
  11. (个人翻译)Scrivener交互式手册中文版FowWindows 03基础操作
  12. 对教材-人工智能导论的不同看法
  13. JS实现最美的3D宇宙特效
  14. 使用c语言解析gprmc数据
  15. ggsurvplot的p值到底是如何计算的
  16. AI人工智能外呼机器人测试项目经历
  17. lessons learned from the Qlikview loads the data from DB into qvd files
  18. 港科夜闻|香港科大商学院院长谭嘉因:金融业仍渴才,商科生疫情下有优势...
  19. python 实现跳一跳自动化代码_跳一跳AI(wai gua)的实现原理详细介绍
  20. 摸着石头过河----fcitx3输入法的安装!

热门文章

  1. linux 批量监控软件,Linux/Unix/Windows批量管理监控服务器软件
  2. 教你如何解决SQL server中提示对象名无效
  3. svn 文件夹没有绿勾红感叹号图标
  4. nav-tage、vue3.0顶部历史浏览记录代码实现 vuex + el + vue3.0
  5. 全民奇迹局域网php版,手游全民奇迹8.3镜像端-配套客户端+局域网ip架设+安卓端...
  6. 读书笔记——《图解TCP/IP》(1/4)
  7. 短信通知接口json报文开发设计总结
  8. JS魔法堂:深究JS异步编程模型
  9. 浅谈fiddler抓包工具中自动断点——Before Requests与After Responses断点功能
  10. 参加科学教师与计算机培训总结,小学科学教师培训总结