k8s部署xxl-job和docker部署

3 篇文章 0 订阅
2 篇文章 0 订阅
文章详细介绍了如何使用Docker部署MySQL5.7数据库,包括创建配置文件my.cnf以及设置环境变量。接着,展示了如何部署XXL-JOB应用,指定数据库连接信息。最后,提到了在Kubernetes(K8s)中通过YML文件进行XXL-JOB应用的Deployment配置,包括容器资源请求限制、日志目录挂载等。
摘要由CSDN通过智能技术生成

一、部署mysql数据库(docker部署)

1、部署mysql5.7

docker pull mysql:5.7.36

#安装5.7数据库,需创建配置文件my.cnf文件内容才可以启动,不然启动报错

export DIR_MYSQL="/data/mysql5.7"
mkdir -p ${DIR_MYSQL}/conf
mkdir -p ${DIR_MYSQL}/logs
mkdir -p ${DIR_MYSQL}/data

cd ${DIR_MYSQL}

# 创建配置文件


cat > ${DIR_MYSQL}/conf/my.cnf << EOF
[mysqld]
pid-file	= /var/run/mysqld/mysqld.pid
socket		= /var/run/mysqld/mysqld.sock
datadir		= /var/lib/mysql
# log-error	= /var/log/mysql/error.log

# 表名参数名忽略大小写
lower_case_table_names=1

# 设置字符集
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

max_connections = 2000
max_user_connections = 1900
max_connect_errors = 100000
max_allowed_packet = 50M

[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
EOF


docker run --name mysql57 \
-e TZ="Asia/Shanghai" \
-e MYSQL_ROOT_PASSWORD='ZPBjlg#cZxWxHcc*&Dk&' \
-p 3306:3306 \
-v ${DIR_MYSQL}/conf/my.cnf:/etc/mysql/my.cnf \
-v ${DIR_MYSQL}/logs:/logs \
-v ${DIR_MYSQL}/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime:ro \
--restart always \
--privileged=true \
-d mysql:5.7.36

2、部署xxl-job

docker pull xuxueli/xxl-job-admin:2.3.0

#配置数据库账号密码
docker run \
-e PARAMS=" --server.port=8090 --spring.datasource.url=jdbc:mysql://192.168.1.71:13306/xxl_job?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8 --spring.datasource.username=root --spring.datasource.password=ZPBjlg#cZxWxHcc*&Dk&" \
-e TZ="Asia/Shanghai" \
-p 9999:8090 \
-v /etc/localtime:/etc/localtime:ro \
-v /data/project/ibuilds-xxl-job:/data/applogs \
--name xxl-job-admin --restart=always  \
-d xuxueli/xxl-job-admin:2.3.0

3、初始化导入数据库

# 下载xxl-job源码包
    wget https://github.com/xuxueli/xxl-job/archive/2.3.0.tar.gz
     tar xf 解压出来,把xxl-job-2.3.0/doc/db/tables_xxl_job.sql导入xxl_job数据库里面

二、k8s部署yml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ibuild-v3-xxl-job-admin
  namespace: sykj-dev
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ibuild-v3-xxl-job-admin
  template: 
    metadata:
      labels:
        app: ibuild-v3-xxl-job-admin
    spec:
      nodeSelector:
        app: ibuild-v3
      containers:
      - name: ibuild-v3-xxl-job-admin
        image: 192.168.1.137:8011/devops/xxl-job:2.3.0
        env: 
          - name: PARAMS
            value: "--spring.datasource.url=jdbc:mysql://192.168.1.71:13306/xxl_job?Unicode=true&characterEncoding=UTF-8&useSSL=false --spring.datasource.username=root --spring.datasource.password=ZPBjlg#cZxWxHcc*&Dk&"
        volumeMounts:
          - name: xxl-job-admin-log
            mountPath: /app/logs
        ports:
        - name: port8080
          containerPort: 8080         
        # livenessProbe:
          # httpGet:
            # path: /api/common/health
            # port: port8080
          # initialDelaySeconds: 60
          # periodSeconds: 10
        # readinessProbe:
          # httpGet:
            # path: /api/common/health
            # port: port8080
          # initialDelaySeconds: 60
          # periodSeconds: 10
        resources: 
          requests:
            cpu: 200m
            memory: 512Mi
          limits:
            cpu: "1"        
            memory: 1024Mi          
      imagePullSecrets:
        - name: habor-repo
      volumes:
      - name: xxl-job-admin-log
        hostPath: 
          path: /data/logs/xxl-job-admin
          type: DirectoryOrCreate
        
---
apiVersion: v1
kind: Service
metadata:
  name: svc-ibuild-v3-xxl-job-admin
  namespace: sykj-dev
  labels:
    app: ibuild-v3-xxl-job-admin
spec:
  #type: ClusterIP
  type: NodePort
  ports:
    - name: port8080
      port: 8080
      targetPort: 8080
      nodePort: 38080    
  selector:
    app: ibuild-v3-xxl-job-admin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值