docker安装

准备资料:
到dockerhub拉取最新镜像:https://hub.docker.com/r/xuxueli/xxl-job-admin/tags
到github下载xxl_job库所需要的sql:https://github.com/xuxueli/xxl-job/blob/master/doc/db/tables_xxl_job.sql

docker pull xuxueli/xxl-job-admin:2.3.1
mkdir -p /data/xxl/conf /data/xxl/applogs

准备配置文件:vi /data/xxl/conf/application.properties

server.port=8080
server.servlet.context-path=/xxl-job-admin

spring.datasource.url=jdbc:mysql://10.xxx.xx.xx:3306/test_xxl_job?Unicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=xxx
spring.datasource.password=xxx
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

 运行容器

docker run -d -p 8081:8080 --name test-xxl-job --privileged=true --restart=always -v /data/xxl/conf/application.properties:/application.properties -v /data/xxl/applogs:/data/applogs xuxueli/xxl-job-admin:2.3.1

docker logs -f test-xxl-job
查看日志,出现 init xxl-job admin scheduler success 安装成功

登陆:http://ip:8080
默认账号密码:admin/123456
登陆后改密码

配个域名方便点

server {
    listen  80;
    server_name test-xxl.xxx.com;

    location / {
       proxy_pass http://127.0.0.1:8081;
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
    }
    access_log  /var/log/xxl.log main;
    error_log /var/log/xxl.error.log;
}

k8s安装

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: xxl-job-admin
  name: xxl-job-admin
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: xxl-job-admin
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: xxl-job-admin
    spec:
      containers:
      - image: xuxueli/xxl-job-admin:2.3.1
        imagePullPolicy: IfNotPresent
        name: xxl-job-admin
        volumeMounts:
        - mountPath: /data/applogs
          name: logdir
          subPath: xxl-job-admin
        - mountPath: /application.properties
          name: xxl-job-admin
          readOnly: true
          subPath: application.properties
      volumes:
      - configMap:
          defaultMode: 420
          items:
          - key: application.properties
            mode: 420
            path: application.properties
          name: xxl-job-admin
        name: xxl-job-admin
      - name: logdir
        nfs:
          path: /default
          server: 10.xxx.xxx.xxx

---
apiVersion: v1
kind: Service
metadata:
  name: xxl-job-admin
  namespace: default
  labels:
    app: xxl-job-admin
spec:
  ports:
  - port: 8080
    protocol: TCP
    name: http
  selector:
    app: xxl-job-admin

---
apiVersion: v1
data:
  application.properties: |-
    server.port=8080
    server.servlet.context-path=/xxl-job-admin

    spring.datasource.url=jdbc:mysql://10.xxx.xx.xx:3306/prod_xxl_job?Unicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    spring.datasource.username=prodxxl
    spring.datasource.password=xxxxx
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

kind: ConfigMap
metadata:
  name: xxl-job-admin
  namespace: default

我这里把xxl日志挂载到外部nfs了,不需要的可以不加这个,xxl镜像建议放到自己平台仓库,我这还没推上去.
腾讯云容器平台的ingress是要钱的,不能直接创建,这里就没写.

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐