文章目录
一. 2.1.2
1.1 下载源码
地址 https://gitee.com/xuxueli0323/xxl-job/tree/2.1.2
1.2 创建数据库
查看sql https://gitee.com/xuxueli0323/xxl-job/blob/v2.2.0/doc/db/tables_xxl_job.sql#
1.3 如果本地跑的话,修改数据库连接和邮箱地址
1.4 编写k8s yaml文件
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: xxl-job-admin
spec:
template:
metadata:
labels:
app: xxl-job-admin
spec:
containers:
- name: xxl-job-admin
image: registry.cn-shanghai.aliyuncs.com/wanfei/xxl-job-admin:2.1.2
ports:
- containerPort: 8080
env:
- name: PARAMS
value: "--spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&useSSL=false --spring.datasource.username=root --spring.datasource.password=root --spring.mail.username=xxxxxx@qq.com --spring.mail.password=xxxxxx"
---
apiVersion: v1
kind: Service
metadata:
name: xxl-job-admin
labels:
app: xxl-job-admin
spec:
ports:
- port: 8080
protocol: TCP
name: http
selector:
app: xxl-job-admin
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: xxl-job-admin
annotations:
kubernetes.io/ingress.class: "nginx"
kubernetes.io/tls-acme: "true"
spec:
tls:
- hosts:
- xxl.wanfei.wang
secretName: xxl-job-tls
rules:
- host: xxl.wanfei.wang
http:
paths:
- path: '/'
backend:
serviceName: xxl-job-admin
servicePort: 8080
- name: PARAMS
: 指定application.properties
配置参数,从Dockerfile
中设置的PARAMS
环境变量
1.5 运行
[root@master nginx]# ls
xxl-job-admin.yaml
[root@master nginx]# kubectl apply -f xxl-job-admin.yaml
deployment.extensions/xxl-job-admin created
service/xxl-job-admin created
ingress.extensions/xxl-job-admin created
[root@master nginx]# kubectl get pods | grep xxl-job-admin
xxl-job-admin-6c4b9498c6-x7snf 1/1 Running 0 43s
1.6 访问调度中心
https://xxl.wanfei.wang/xxl-job-admin
默认账号密码: admin/123456
二. 2.2.0
2.1 制作镜像
进入下载好了的项目里,
xxl-job-admin
项目package
$ ls
LICENSE NOTICE README.md doc pom.xml xxl-job-admin xxl-job-core xxl-job-executor-samples
# docker登录阿里云镜像仓库
$ docker login -u=xxxxxx@qq.com -p xxxxxx registry.cn-shanghai.aliyuncs.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded
# 制作xxl-job-admin镜像
$ docker build -t registry.cn-shanghai.aliyuncs.com/wanfei/xxl-job-admin:2.2.0 xxl-job-admin/
# 推送镜像到阿里云镜像仓库
$ docker push registry.cn-shanghai.aliyuncs.com/wanfei/xxl-job-admin:2.2.0
2.2 xxl-job-admin.yaml
2.2.1 部署在云服务器
本地运行执行器不行,因为与服务器无法访问本地网络
cat <<EOF> xxl-job-admin.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: xxl-job-admin
spec:
selector:
matchLabels:
app: xxl-job-admin
template:
metadata:
labels:
app: xxl-job-admin
spec:
containers:
- name: xxl-job-admin
image: registry.cn-shanghai.aliyuncs.com/wanfei/xxl-job-admin:2.2.0
ports:
- containerPort: 8080
env:
- name: PARAMS
value: "--spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true --spring.datasource.username=root --spring.datasource.password=root --spring.mail.username=xxxxxx@126.com --spring.mail.password=xxxxxx"
---
apiVersion: v1
kind: Service
metadata:
name: xxl-job-admin
labels:
app: xxl-job-admin
spec:
ports:
- port: 8080
protocol: TCP
name: http
selector:
app: xxl-job-admin
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: xxl-job-admin
annotations:
kubernetes.io/ingress.class: "nginx"
kubernetes.io/tls-acme: "true"
spec:
tls:
- hosts:
- xxl.wanfei.wang
secretName: xxl-job-tls
rules:
- host: xxl.wanfei.wang
http:
paths:
- path: '/'
backend:
serviceName: xxl-job-admin
servicePort: 8080
EOF
2.2.2 部署在本地k8s集群
cat <<EOF> xxl-job-admin.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: xxl-job-admin
spec:
selector:
matchLabels:
app: xxl-job-admin
template:
metadata:
labels:
app: xxl-job-admin
spec:
containers:
- name: xxl-job-admin
image: registry.cn-shanghai.aliyuncs.com/wanfei/xxl-job-admin:2.2.0
ports:
- containerPort: 8080
env:
- name: PARAMS
value: "--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&useSSL=false --spring.datasource.username=root --spring.datasource.password=root --spring.mail.username=xxxxxx@126.com --spring.mail.password=xxxxxx"
---
apiVersion: v1
kind: Service
metadata:
name: xxl-job-admin
labels:
app: xxl-job-admin
spec:
ports:
- port: 8080
protocol: TCP
name: http
selector:
app: xxl-job-admin
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: xxl-job-admin
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: xxl-job-admin
servicePort: 8080
EOF
删除了
Ingress
里面的host
和tls
相关的,访问的时候只能用ip
访问
2.2.3 部署与登录
部署
kubectl apply -f xxl-job-admin.yaml
登录账号密码地址和上面一样