k8s 安装xxl-job

需求

使用k8s部署xxl-job,xxl-job的数据主要保存在mysql中,因此xxl-job运行时不需要考虑持久化问题。

这里使用2.4.1版本

导入mysql数据

github地址:https://github.com/xuxueli/xxl-job/releases

找到2.4.1版本,下载压缩包,得到xx-job-2.4.1.zip

解压文件,找到文件xxl-job-2.4.1\doc\db\tables_xxl_job.sql

tables_xxl_job.sql,就是xx-job的初始化sql

使用客户端工具DBeaver连接到mysql,创建数据库xxl_job

CREATE database if NOT EXISTS `xxl_job` default character set utf8mb4 collate utf8mb4_unicode_ci;

新建数据库用户nacos_all并授权

CREATE USER 'xxl_job_all'@'%' IDENTIFIED BY 'abcd@1234';

GRANT ALL PRIVILEGES ON nacos . * TO 'xxl_job_all'@'%';

FLUSH PRIVILEGES;

切换到数据库xxl_job,执行sql文件tables_xxl_job.sql,执行完成后,会得到相应的数据表。

编写yaml

xxl-job-admin.yaml

apiVersion: v1
kind: ConfigMap
apiVersion: v1
metadata:
  name: xxl-job-config
  namespace: middleware
data:
  PARAMS: >-
    --spring.datasource.url=jdbc:mysql://192.168.20.131:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
    --spring.datasource.username=xxl_job_all
    --spring.datasource.password=abcd@1234
    --xxl.job.accessToken=22d697201b8953eabf5f8d901f30a037
    --server.servlet.context-path=/xxl-job-admin
---
kind: Deployment
apiVersion: apps/v1
metadata:
  name: xxl-job-admin
  namespace: middleware
  labels:
    app: xxl-job-admin
spec:
  replicas: 1
  selector:
    matchLabels:
      app: xxl-job-admin
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: xxl-job-admin
    spec:
      containers:
        - name: xxl-job-admin
          image: xuxueli/xxl-job-admin:2.4.1
          ports:
            - containerPort: 8080
              protocol: TCP
          env:
            - name: TZ
              value: Asia/Shanghai
            - name: PARAMS
              valueFrom:
                configMapKeyRef:
                  name: xxl-job-config
                  key: PARAMS
          resources:
            limits:
              cpu: '1'
              memory: 2Gi
            requests:
              cpu: 500m
              memory: 512Mi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
  name: xxl-job-admin-svc
  namespace: middleware
  labels:
    app: xxl-job-admin-svc
spec:
  ports:
    - name: xxl-job-admin
      port: 8080
      protocol: TCP
      targetPort: 8080
  selector:
    app: xxl-job-admin
  type: NodePort

注意修改命名空间,数据库 用户名密码。

注意:xxl.job.accessToken不能为default_token,否则会出现xxl-job默认密钥漏洞

创建命名空间

kubectl create namespace middleware

部署应用

kubectl apply -f xxl-job-admin.yaml

等待几分钟,确保pod是Running状态

访问

访问xxl-job页面,这里使用的nodeport方式暴露端口

http://172.16.0.13:30124/xxl-job-admin

默认

用户名:admin

密码:123456

相关推荐
wuxingge3 小时前
k8s1.30.0高可用集群部署
云原生·容器·kubernetes
志凌海纳SmartX4 小时前
趋势洞察|AI 能否带动裸金属 K8s 强势崛起?
云原生·容器·kubernetes
锅总4 小时前
nacos与k8s service健康检查详解
云原生·容器·kubernetes
BUG弄潮儿4 小时前
k8s 集群安装
云原生·容器·kubernetes
Code_Artist4 小时前
Docker镜像加速解决方案:配置HTTP代理,让Docker学会科学上网!
docker·云原生·容器
何遇mirror5 小时前
云原生基础-云计算概览
后端·云原生·云计算
颜淡慕潇6 小时前
【K8S系列】kubectl describe pod显示ImagePullBackOff,如何进一步排查?
后端·云原生·容器·kubernetes
Linux运维日记6 小时前
k8s1.31版本最新版本集群使用容器镜像仓库Harbor
linux·docker·云原生·容器·kubernetes
一名路过的小码农8 小时前
ceph 18.2.4二次开发,docker镜像制作
ceph·docker·容器
AI_小站8 小时前
RAG 示例:使用 langchain、Redis、llama.cpp 构建一个 kubernetes 知识库问答
人工智能·程序人生·langchain·kubernetes·llama·知识库·rag