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
相关推荐
唯情于酒2 小时前
Docker学习
学习·docker·容器
喵叔哟2 小时前
20.部署与运维
运维·docker·容器·.net
运维栈记7 小时前
虚拟化网络的根基-网络命名空间
网络·docker·容器
Joren的学习记录8 小时前
【Linux运维大神系列】Kubernetes详解3(kubeadm部署k8s1.23高可用集群)
linux·运维·kubernetes
Hellc0078 小时前
Docker网络冲突排查与解决方案:完整指南
网络·docker·容器
hanyi_qwe9 小时前
发布策略 【K8S (三)】
docker·容器·kubernetes
眠りたいです9 小时前
Docker核心技术和实现原理第二部分:docker镜像与网络原理
运维·网络·docker·容器
Mr. Cao code10 小时前
Docker数据管理:持久化存储最佳实践
java·docker·容器
Cyber4K12 小时前
【Kubernetes专项】DockerFile、数据持计划、网络模式及资源配额
运维·网络·云原生·容器·kubernetes
Joren的学习记录12 小时前
【Linux运维疑难杂症】k8s集群创建calico网络失败
linux·运维·kubernetes