k8s 安装xxl-job
需求
使用k8s部署xxl-job,xxl-job的数据主要保存在mysql中,因此xxl-job运行时不需要考虑持久化问题。
这里使用2.4.1版本
导入mysql数据
github地址:https://github.com/xuxueli/xxl-job/releases
找到2.4.1版本,下载压缩包,得到xx-job-2.4.1.zip
解压文件,找到文件xxl-job-2.4.1\doc\db\tables_xxl_job.sql
tables_xxl_job.sql,就是xx-job的初始化sql
使用客户端工具DBeaver连接到mysql,创建数据库xxl_job
CREATE database if NOT EXISTS `xxl_job` default character set utf8mb4 collate utf8mb4_unicode_ci;
新建数据库用户nacos_all并授权
CREATE USER 'xxl_job_all'@'%' IDENTIFIED BY 'abcd@1234';
GRANT ALL PRIVILEGES ON nacos . * TO 'xxl_job_all'@'%';
FLUSH PRIVILEGES;
切换到数据库xxl_job,执行sql文件tables_xxl_job.sql,执行完成后,会得到相应的数据表。
编写yaml
xxl-job-admin.yaml
apiVersion: v1 kind: ConfigMap apiVersion: v1 metadata: name: xxl-job-config namespace: middleware data: PARAMS: >- --spring.datasource.url=jdbc:mysql://192.168.20.131:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=xxl_job_all --spring.datasource.password=abcd@1234 --xxl.job.accessToken=22d697201b8953eabf5f8d901f30a037 --server.servlet.context-path=/xxl-job-admin --- kind: Deployment apiVersion: apps/v1 metadata: name: xxl-job-admin namespace: middleware labels: app: xxl-job-admin spec: replicas: 1 selector: matchLabels: app: xxl-job-admin template: metadata: creationTimestamp: null labels: app: xxl-job-admin spec: containers: - name: xxl-job-admin image: xuxueli/xxl-job-admin:2.4.1 ports: - containerPort: 8080 protocol: TCP env: - name: TZ value: Asia/Shanghai - name: PARAMS valueFrom: configMapKeyRef: name: xxl-job-config key: PARAMS resources: limits: cpu: '1' memory: 2Gi requests: cpu: 500m memory: 512Mi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File imagePullPolicy: Always --- apiVersion: v1 kind: Service metadata: name: xxl-job-admin-svc namespace: middleware labels: app: xxl-job-admin-svc spec: ports: - name: xxl-job-admin port: 8080 protocol: TCP targetPort: 8080 selector: app: xxl-job-admin type: NodePort
注意修改命名空间,数据库 用户名密码。
注意:xxl.job.accessToken不能为default_token,否则会出现xxl-job默认密钥漏洞
创建命名空间
kubectl create namespace middleware
部署应用
kubectl apply -f xxl-job-admin.yaml
等待几分钟,确保pod是Running状态
访问
访问xxl-job页面,这里使用的nodeport方式暴露端口
http://172.16.0.13:30124/xxl-job-admin
默认
用户名:admin
密码:123456