方式一:使用阿里云acr加ack部署
1、首先下载对应xxl,我是直接下载的镜像
地址 https://gitee.com/xuxueli0323/xxl-job/tree/2.1.2 这个和我部署的版本不同,我用的是2.3.0的
首先是执行对应的数据库脚本
docker pull xuxueli/xxl-job-admin:2.3.0
2、我这里是将镜像推送到了阿里云的容器镜像服务
3、部署,我这里是手工部署,没有使用helm脚本,注意添加一个环境变量
PARAMS
--spring.datasource.url=jdbc:mysql://localhost:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&useSSL=false --spring.datasource.username=root --spring.datasource.password=123456
方式二:使用本地集群部署
编写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://localhost:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&useSSL=false --spring.datasource.username=root --spring.datasource.password=123456"
---
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.lx.com
secretName: xxl-job-tls
rules:
- host: xxl.lx.com
http:
paths:
- path: '/'
backend:
serviceName: xxl-job-admin
servicePort: 8080
kubectl apply -f xxl.yaml
部署之后,一般情况下是ok的。只要你数据库的配置ok,如果报错的话,查看k8s的日志信息
kubectl logs -f pod名称
注意点:
如果使用的是k8s部署的xxl。执行器是k8s内部的服务,这个时候是没有固定的ip的。在配置执行器的时候,注意使用 k8s服务名.命名空间.svc.cluster.local 这样才能访问执行器的ip