K8S如何部署xxl-job?
AI 总结
本文介绍了在Kubernetes中部署xxl-job 2.4.0版本的过程。首先下载并解压官方压缩包,获取初始化SQL脚本,在MySQL中创建数据库和用户并执行脚本。然后创建ConfigMap配置数据库连接参数,接着创建Deployment部署xxl-job-admin镜像,通过环境变量引用ConfigMap。再创建LoadBalancer类型的Service暴露服务,最后通过默认账号admin/123456访问系统。
需求:业务需要部署xxl-job做定时任务
我这边以2.4.0为例

步骤二:先初始化数据库
github地址:https://github.com/xuxueli/xxl-job/releases
1.找到2.4.0版本,下载压缩包,得到xx-job-2.4.0.zip
解压文件,找到文件xxl-job-2.4.0\doc\db\tables_xxl_job.sql
tables_xxl_job.sql,就是xx-job的初始化sql
2.连接到自己的数据库,创建新库和对应的用户
CREATE database if NOT EXISTS `xxl_job` default character set utf8mb4 collate utf8mb4_general_ci;
CREATE USER 'xxl_job_rw'@'%' IDENTIFIED BY 'xxljob@1234';
GRANT ALL PRIVILEGES ON `xxl_job`.* TO 'xxl_job_rw'@'%';
FLUSH PRIVILEGES;
3.执行sql文件,初始化数据
步骤二:创建configmap文件,指定xxl-job用的数据库
kind: ConfigMap
apiVersion: v1
metadata:
name: xxl-job-config
namespace: default
data:
PARAMS: |-
--spring.datasource.url=jdbc:mysql://10.38.28.5:3306/xxl_job?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
--spring.datasource.username=xxl_job_rw
--spring.datasource.password=xxljob@1234
--server.servlet.context-path=/
步骤三:创建deployment资源
apiVersion: apps/v1
kind: Deployment
metadata:
name: vms-xxl-job
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: vms-xxl-job
template:
metadata:
labels:
app: vms-xxl-job
spec:
volumes:
- name: vol-178418615222432701
hostPath:
path: /etc/localtime
type: ''
containers:
- name: xxl-job
image: xuxueli/xxl-job-admin:2.4.0
ports:
- containerPort: 8080
env:
- name: PARAMS
valueFrom:
configMapKeyRef:
name: vms-xxl-job-config
key: PARAMS
resources:
limits:
cpu: '2'
memory: 2Gi
requests:
cpu: 250m
memory: 512Mi
volumeMounts:
- name: vol-178418615222432701
readOnly: true
mountPath: /etc/localtime
imagePullSecrets:
- name: default-secret
步骤四,创建svc
这里因为我用的是云ELB,所有type填LoadBalancer
kind: Service
apiVersion: v1
metadata:
name: vms-xxl-job
namespace: default
labels:
app: vms-xxl-job
spec:
ports:
- name: cce-service-0
protocol: TCP
port: 18000
targetPort: 8080
selector:
app: vms-xxl-job
type: LoadBalancer
loadBalancerIP: 10.38.28.6
externalTrafficPolicy: Cluster
步骤五,访问一下看看
账号密码:默认admin/123456

评论 (0)