前言
书接上回"本地单机docker部署xxl-job",感兴趣也可以看我的另一篇文章
话说本地docker部署满足测试和自己玩玩是可以的,如果要用于生成就有点上不了台面了。
话不多说,直接上正文
0.在数据库中初始化相应的xxl-job的sql语句,参考上篇文章
首先是选择xxl-job的镜像,有三种方式
1.用docker-hub里面的镜像地址直接是"xuxueli/xxl-job-admin:2.4.0",这种方式的话需要覆盖掉里面原来的数据库的配置,所以在k8s部署的时候,需要加上"env",添加数据库的配置参数。
2.下载git上的https://github.com/xuxueli/xxl-job代码到本地,选择好自己的版本,然后记得修改"application.properties"文件中的数据配置,然后用docker build -t xxx . 打镜像,然后上传到自己的镜像仓库,然后k8s就可以拉取使用了。
3.我用的是腾讯云的coding来管理我们的代码仓库,所以我们直接在coding上,点击"其他仓库导入",然后就可以复制出git仓库代码。然后记得修改"application.properties"文件中的数据配置,然后我们利用coding的构建计划,就可以构建出我们自己的"镜像"。
K8S部署实战
1.构建deployment文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: xxl-job-admin
spec:
replicas: 2
selector:
matchLabels:
app: xxl-job-admin
template:
metadata:
labels:
app: xxl-job-admin
spec:
containers:
- name: xxl-job-admin
image: xuxueli/xxl-job-admin:2.4.0
imagePullPolicy: Always # 优先使用本地镜像
ports:
- containerPort: 8080
# env:
# - name: PARAMS
# value: "--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai"
然后kubectl apply -f <配置文件路径> ,不是该文件,部署成功后。
用kubectl exec -it {pod name} 进入到启动好的pod中,使用curl -L http://127.0.0.1:8080/xxl-job-admin,如果有信息返回表示部署成功
2.构建service文件
apiVersion: v1
kind: Service
metadata:
name: xxl-job-admin-service
labels:
app: xxl-job-admin
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 31528
selector:
app: xxl-job-admin
然后同样用kubectl apply -f <配置文件路径> 执行该文件,执行成功后。就可以在集群内部用"http://{service}.{namespace}.svc.cluster.local:8080/xxl-job-adm",来访问和使用该集群。
至此,部署全部完毕,如果在三种方式部署中,遇到任何问题,可以给我留言评论,我会回复看看具体问题怎么解决。
本文暂时没有评论,来添加一个吧(●'◡'●)