Openshift或者K8S上部署xxl-job

本案例以版本2.3.0为例

1. package jar by source code

source code:
https://github.com/xuxueli/xxl-job/blob/2.3.0/

2. init mysql database

sql code:
https://github.com/xuxueli/xxl-job/blob/2.3.0/doc/db/tables_xxl_job.sql

3. build image:

refer to:
https://github.com/xuxueli/xxl-job/blob/2.3.0/xxl-job-admin/Dockerfile

dockerfile 复制代码
FROM openjdk:8-jre-slim
MAINTAINER xuxueli

ENV PARAMS=""

ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

ADD target/xxl-job-admin-*.jar /app.jar

ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS"]

4. deploy on ocp

yaml 复制代码
kind: Deployment
apiVersion: apps/v1
metadata:
  name: xxl-job
  labels:
    app.kubernetes.io/instance: xxl-job
spec:
  replicas: 1
  selector:
    matchLabels:
      app: xxl-job
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: xxl-job
        deployment: xxl-job
    spec:
      containers:
        - resources:
            limits:
              cpu: '1'
              memory: 4Gi
            requests:
              cpu: 500m
              memory: 4Gi
          readinessProbe:
            tcpSocket:
              port: 8080
            initialDelaySeconds: 30
            timeoutSeconds: 1
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 3
          name: xxl-job
          livenessProbe:
            tcpSocket:
              port: 8080
            initialDelaySeconds: 30
            timeoutSeconds: 1
            periodSeconds: 30
            successThreshold: 1
            failureThreshold: 3
          env:
            - name: PARAMS
              value: '--spring.datasource.url=jdbc:mysql://xxx:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai  --spring.datasource.username=xxx --spring.datasource.password=xxx' ###这里需要填写mysql的连接信息
          ports:
            - name: http
              containerPort: 8080
              protocol: TCP
          image: 'xxx' ## xxl-job的镜像地址
      restartPolicy: Always
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 1
  revisionHistoryLimit: 1
---
kind: Service
apiVersion: v1
metadata:
  name: xxl-job
spec:
  ports:
    - name: 8080-tcp
      protocol: TCP
      port: 8080
      targetPort: 8080
  type: ClusterIP
  selector:
    deployment: xxl-job
---
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
  name: xxl-job
spec:
  ingressClassName: openshift-default
  rules:
    - host: xxx ## 这边填写域名
      http:
        paths:
          - path: /xxl-job-admin
            pathType: Prefix
            backend:
              service:
                name: xxl-job
                port:
                  name: 8080-tcp

5. visit xxl-job web

初始的

username: admin

password: 123456

相关推荐
会飞的小蛮猪3 小时前
K8s-1.29.2二进制安装-第一章
云原生·容器·kubernetes
树下水月8 小时前
docker 启动后 如何通过对应的进程 找docker-compose.yaml 编排文件
运维·docker·容器
凯子坚持 c8 小时前
Docker 网络管理深度解析与实践指南
运维·docker·容器
kevin_水滴石穿8 小时前
在镜像生成时从内网获取字体安装包并配置
linux·docker·容器
LILR_9 小时前
简单学docker
运维·docker·容器
Empty_77710 小时前
K8S-网络原理
网络·容器·kubernetes
永不停歇的蜗牛10 小时前
K8S之创建cm指令create和 apply的区别
java·容器·kubernetes
java_logo10 小时前
Transmission Docker 容器化部署指南
运维·docker·容器·kubernetes·apache·rocketmq·transmission
kali-Myon11 小时前
快速解决 Docker 环境中无法打开 gdb 调试窗口以及 tmux 中无法滚动页面内容和无法选中复制的问题
运维·安全·docker·容器·gdb·pwn·tmux
一周困⁸天.12 小时前
K8S-网络组件 Calico
网络·容器·kubernetes