1、创建mysql数据库
以管理员的身份连接到k8s集群中部署的mysql,并且创建数据库及用户
create database xxl_job;
create user aolingo@'%' identified by 'Aolingo2025';
grant all on xxl_job.* to aolingo@'%';
flush privileges;
2、导入xxl-job需要的表结构
tables_xxl_job.sql
mysql -h 192.168.3.109 -P 30002 -u aolingo -p < tables_xxl_job.sql
3、编写部署yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: xxl-job-admin
namespace: iot
spec:
replicas: 1
selector:
matchLabels:
app: xxl-job-admin
template:
metadata:
labels:
app: xxl-job-admin
spec:
containers:
- name: xxl-job-admin
image: harbor.xxxxxx.com/library/xxl-job-admin:2.5.0
ports:
- containerPort: 8080
env:
- name: PARAMS
value:
--spring.datasource.url=jdbc:mysql://mysql-service:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&useSSL=false
--spring.datasource.username=aolingo
--spring.datasource.password=Aolingo2025
--spring.mail.username=your-email@163.com
--spring.mail.password=your-pass
--xxl.job.admin.username=admin
--xxl.job.admin.password=ST!XCDrAcJFgLx9
--xxl.job.accessToken=aolingo_xxljob
---
# ============================
# 内部访问 Service (ClusterIP)
# ============================
apiVersion: v1
kind: Service
metadata:
name: xxl-job-admin
namespace: iot
spec:
type: ClusterIP
selector:
app: xxl-job-admin
ports:
- name: web
port: 8080
targetPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: xxl-job-admin-nodeport
namespace: iot
spec:
type: NodePort
ports:
- name: web
port: 8080
targetPort: 8080
nodePort: 30088
selector:
app: xxl-job-admin
4、更新admin账号的密码
# 生成密码
echo -n 'ST!XCDrAcJFgLx9' | md5sum
#需要通过sql语句更新
mysql -h 192.168.3.109 -P 30002 -u aolingo -p
mysql> use xxl_job;
mysql> update xxl_job_user set password='5f4c07962ce14250cc69012b365e8959' where username='admin';
5、验证
http://192.168.88.21:30088/xxl-job-admin/
6、测试
一定要注意,token是通过Header传入的,传入错误会报token验证失败的错误。
#windows平台下测试
curl -X POST -H "Content-Type: application/json" -H "XXL-JOB-ACCESS-TOKEN:aolingo_xxljob " -d "{\"registryGroup\":\"EXECUTOR\",\"registryKey\":\"xxl-job-executor\",\"registryValue\":\"http://192.168.88.21:9999/\"}" http://192.168.88.21:30088/xxl-job-admin/api/registry
#Linux平台上测试
curl -X POST \
-H "Content-Type: application/json" \
-H "XXL-JOB-ACCESS-TOKEN:aolingo_xxljob " \
-d '{
"registryGroup": "EXECUTOR",
"registryKey": "xxl-job-executor",
"registryValue": "http://192.168.88.21:9999/"
}' http://192.168.88.21:30088/xxl-job-admin/api/registry
7、安装调试软件
在测试过程中可能需要到xxl-job的容器内部进行测试,需要更换为阿里云源及安装相应的软件。
更换源
cat > /etc/apt/sources.list << 'EOF'
# 阿里云 Debian 11 镜像源
deb https://mirrors.aliyun.com/debian/ bullseye main contrib non-free
deb-src https://mirrors.aliyun.com/debian/ bullseye main contrib non-free
deb https://mirrors.aliyun.com/debian-security/ bullseye-security main contrib non-free
deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main contrib non-free
deb https://mirrors.aliyun.com/debian/ bullseye-updates main contrib non-free
deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main contrib non-free
deb https://mirrors.aliyun.com/debian/ bullseye-backports main contrib non-free
deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main contrib non-free
EOF
安装软件
apt install procps dnsutils net-tools curl