k8s部署xxl-job

https://www.xuxueli.com/xxl-job/

下载项目源码并解压,获取 "调度数据库初始化SQL脚本" 并执行即可

数据库初始化SQL脚本位置: /xxl-job/doc/db/tables_xxl_job.sql

Secret

yaml 复制代码
apiVersion: v1
data:
  mysql.database: eHhsX2pvYg==
  mysql.password: VFNIQG5hY29zZGIjMjAyNWxhbg==
  mysql.url: eHhsLWpvYi1hZG1pbi5zcHJpbmcuZGF0YXNvdXJjZS51cmw=
  mysql.user: eHhsLWpvYg==
kind: Secret
metadata:
  labels:
    app: xxl-job-admin
  name: xxl-job-admin-creds
  namespace: default
type: Opaque

ConfigMap

yaml 复制代码
apiVersion: v1
data:
  application.yaml: |-
    management:
      health:
        mail:
          enabled: false
      server:
        servlet:
          context-path: /actuator
    mybatis:
      mapper-locations: classpath:/mybatis-mapper/*Mapper.xml
    server:
      port: 8080
      servlet:
        context-path: /xxl-job-admin
    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        hikari:
          auto-commit: true
          connection-test-query: SELECT 1
          connection-timeout: 10000
          idle-timeout: 30000
          max-lifetime: 900000
          maximum-pool-size: 30
          minimum-idle: 10
          pool-name: HikariCP
          validation-timeout: 1000
        password: xxxxxx
        type: com.zaxxer.hikari.HikariDataSource
        url: jdbc:mysql://x.x.x.x:3306/xxl_job?useUnicode=true&useSSL=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=UTC
        username: xxl_job
      freemarker:
        charset: UTF-8
        request-context-attribute: request
        settings:
          number_format: 0.##########
        suffix: .ftl
        templateLoaderPath: classpath:/templates/
      mail:
        properties:
          mail:
            smtp:
              auth: true
              socketFactory:
                class: javax.net.ssl.SSLSocketFactory
              starttls:
                enable: true
                required: true
      mvc:
        servlet:
          load-on-startup: 0
        static-path-pattern: /static/**
      resources:
        static-locations: classpath:/static/
    xxl:
      job:
        accessToken: LUX9CiMlatGviDtzLCTBJo4eElan
        i18n: zh_CN
        logretentiondays: 10
        triggerpool:
          fast:
            max: 200
          slow:
            max: 100
kind: ConfigMap
metadata:
  labels:
    app: xxl-job-admin
  name: xxl-job-admin-config
  namespace: default

Deployment

yaml 复制代码
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:
      labels:
        app: xxl-job-admin
    spec:
      containers:
      - env:
        - name: SPRING_CONFIG_IMPORT
          value: optional:configtree:/var/run/secrets/spring/
        - name: TZ
          value: Asia/Shanghai
        image: xuxueli/xxl-job-admin
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /xxl-job-admin/actuator/health/liveness
            port: http
            scheme: HTTP
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        name: xxl-job-admin
        ports:
        - containerPort: 8080
          name: http
          protocol: TCP
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /xxl-job-admin/actuator/health/readiness
            port: http
            scheme: HTTP
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        resources:
          limits:
            cpu: "1"
            memory: 2Gi
          requests:
            cpu: "1"
            memory: 2Gi
        startupProbe:
          failureThreshold: 30
          httpGet:
            path: /xxl-job-admin/actuator/health/liveness
            port: http
            scheme: HTTP
          initialDelaySeconds: 15
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        volumeMounts:
        - mountPath: /config
          name: config
        - mountPath: /var/run/secrets/spring/
          name: creds
        - mountPath: /etc
          name: timezone-conf
          subPath: timezone
      imagePullSecrets:
      - name: default-secret
      initContainers:
      - command:
        - cp
        - -rf
        - /usr/share/zoneinfo/Asia/Shanghai
        - /etc/localtime
        image: xuxueli/xxl-job-admin
        imagePullPolicy: IfNotPresent
        name: change-timezone
        volumeMounts:
        - mountPath: /etc
          name: timezone-conf
          subPath: timezone
      restartPolicy: Always
      volumes:
      - configMap:
          defaultMode: 420
          name: xxl-job-admin-config
        name: config
      - name: creds
        secret:
          defaultMode: 420
          secretName: xxl-job-admin-creds
      - emptyDir: {}
        name: timezone-conf

Service

yaml 复制代码
apiVersion: v1
kind: Service
metadata:
  labels:
    app: xxl-job-admin
  name: xxl-job-admin
  namespace: default
spec:
  allocateLoadBalancerNodePorts: true
  externalTrafficPolicy: Cluster
  internalTrafficPolicy: Cluster
  ports:
  - name: http
    nodePort: 30970
    port: 32765
    protocol: TCP
    targetPort: 8080
  selector:
    app: xxl-job-admin
  type: LoadBalancer
相关推荐
ShiLiu_mtx20 小时前
k8s - 7
云原生·容器·kubernetes
MonkeyKing_sunyuhua1 天前
docker compose up -d --build 完全使用新代码打包的方法
docker·容器·eureka
醇氧1 天前
【docker】mysql 8 的健康检查(Health Check)
mysql·docker·容器
70asunflower1 天前
用Docker创建不同的容器类型
运维·docker·容器
CodeGolang1 天前
Docker容器化部署Zabbix监控系统完整指南
docker·容器·zabbix
ghostwritten1 天前
春节前夕,运维的「年关」:用 Kubeowler 给集群做一次「年终体检」
运维·云原生·kubernetes
[shenhonglei]2 天前
灰度发布功能需求说明书
kubernetes
lpruoyu2 天前
【Docker进阶-03】存储原理
docker·容器
文静小土豆2 天前
Docker 与 containerd 代理配置详解:镜像拉取速度慢的终极解决方案
运维·docker·容器
JY.yuyu2 天前
Docker常用命令——数据卷管理 / 端口映射 / 容器互联
运维·docker·容器