栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

在k8s上部署DataEase

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在k8s上部署DataEase

0. 环境

本次演示环境使用DataEase版本:v1.5.0
设置k8s节点包括1台master和1台worker;
应用部署控制管理器使用deployment;
持久化存储使用hostPath写入到NFS挂载目录。
NFS挂载方式如下:
在master配置了nfs服务,并将nfs共享目录/nfs_storage挂在到了两个节点中的/opt/nfs;
如下图所示:

1. 导入镜像

将DataEase安装包中的镜像一次导入到系统中,或导入到harbor中;
此次演示环境没有配置harbor,直接导入到两个k8s节点中:

cd /opt/dataease-v1.5.0-offline/
for i in `ls images/*.tar.gz`; do docker load < $i; done
2. 创建共享目录
mkdir /opt/nfs/dataease/
#拷贝配置文件到共享目录
cp -r dataease-v1.5.0-offline/dataease/bin/ /opt/nfs/dataease/
cp -r dataease-v1.5.0-offline/dataease/templates/ /opt/nfs/dataease/conf
cp -r dataease-v1.5.0-offline/dataease/plugins /opt/nfs/dataease/

修改配置文件
vi /opt/nfs/dataease/conf/dataease.properties
直接将下面的配置替换原配置

# 数据库配置
spring.datasource.url=jdbc:mysql://mysql:3306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
spring.datasource.username=root
spring.datasource.password=Password123@mysql

carte.host=kettle
carte.port=18080
carte.user=cluster
carte.passwd=cluster

doris.db=dataease
doris.user=root
doris.password=Password123@doris
doris.host=doris-fe
doris.port=9030
doris.httpPort=8030

#新建用户初始密码
dataease.init_password=DataEase123456
#登录超时时间单位min  如果不设置 默认8小时也就是480
dataease.login_timeout=480

logger.level=INFO
3. 创建应用 3.1 创建MySQL

kubectl create -f 1.mysql-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
  namespace: de
spec:
  selector:
    matchLabels:
      app: mysql
  replicas: 1
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - name: mysql
          image: registry.cn-qingdao.aliyuncs.com/dataease/mysql:5.7.36
          imagePullPolicy: IfNotPresent
          env:
            - name: MYSQL_ROOT_PASSWORD
              value: "Password123@mysql"
          ports:
            - containerPort: 3306
              protocol: TCP
          volumeMounts:
            - name: mysql-conf
              mountPath: /etc/mysql/conf.d/my.cnf
            - name: mysql-data
              mountPath: /var/lib/mysql
            - name: mysql-sql
              mountPath: /docker-entrypoint-initdb.d
      volumes:
        - name: mysql-conf
          hostPath:
            path: /opt/nfs/dataease/conf/my.cnf
        - name: mysql-data
          hostPath:
            path: /opt/nfs/dataease/data/mysql
        - name: mysql-sql
          hostPath:
            path: /opt/nfs/dataease/bin/mysql
---
apiVersion: v1
kind: Service
metadata:
  name: mysql
  namespace: de
spec:
  ports:
    - name: mysql
      protocol: TCP
      port: 3306
      targetPort: 3306
      nodePort: 30306
  type: NodePort
  selector:
    app: mysql
3.2 创建kettle

kubectl create -f 2.kettle-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kettle
  namespace: de
spec:
  selector:
    matchLabels:
      app: kettle
  replicas: 1
  template:
    metadata:
      labels:
        app: kettle
    spec:
      containers:
        - name: kettle
          image: registry.cn-qingdao.aliyuncs.com/dataease/kettle:8.3-v1.2
          imagePullPolicy: IfNotPresent
          env:
            - name: PENTAHO_DI_JAVA_OPTIONS
              value: "-Xms1024m -Xmx4096m -XX:MaxPermSize=256m -Dfile.encoding=utf-8"
          volumeMounts:
            - name: kettle-conf
              mountPath: /opt/dataease/conf
            - name: kettle-data
              mountPath: /opt/dataease/data/kettle
      volumes:
        - name: kettle-conf
          hostPath:
            path: /opt/nfs/dataease/conf/
        - name: kettle-data
          hostPath:
            path: /opt/nfs/dataease/data/kettle
---
apiVersion: v1
kind: Service
metadata:
  name: kettle
  namespace: de
spec:
  ports:
    - name: kettle-18080
      protocol: TCP
      port: 18080
      targetPort: 18080
    - name: kettle-9051
      protocol: TCP
      port: 9051
      targetPort: 9051
    - name: kettle-11001
      protocol: TCP
      port: 11001
      targetPort: 11001
  type: ClusterIP
  selector:
    app: kettle
3.3 创建doris-fe

kubect create -f 3.doris-fe-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: doris-fe
  namespace: de
spec:
  selector:
    matchLabels:
      app: doris-fe
  replicas: 1
  template:
    metadata:
      labels:
        app: doris-fe
    spec:
      containers:
        - name: doris-fe
          image: registry.cn-qingdao.aliyuncs.com/dataease/doris:0.15
          imagePullPolicy: IfNotPresent
          env:
            - name: DORIS_ROLE
              value: fe-leader
          volumeMounts:
            - name: doris-fe-meta
              mountPath: /opt/doris/fe/doris-meta
            - name: doris-fe-logs
              mountPath: /opt/doris/fe/log
            - name: doris-fe-conf
              mountPath: /opt/doris/fe/conf/fe.conf
            - name: doris-fe-sql
              mountPath: /docker-entrypoint-initdb.d/
      volumes:
        - name: doris-fe-meta
          hostPath:
            path: /opt/nfs/dataease/data/fe
        - name: doris-fe-logs
          hostPath:
            path: /opt/nfs/dataease/logs/fe
        - name: doris-fe-conf
          hostPath:
            path: /opt/nfs/dataease/conf/fe.conf
        - name: doris-fe-sql
          hostPath:
            path: /opt/nfs/dataease/bin/doris
---
apiVersion: v1
kind: Service
metadata:
  name: doris-fe
  namespace: de
spec:
  ports:
    - name: doris-fe-9010
      protocol: TCP
      port: 9010
      targetPort: 9010
    - name: doris-fe-9020
      protocol: TCP
      port: 9020
      targetPort: 9020
    - name: doris-fe-9030
      protocol: TCP
      port: 9030
      targetPort: 9030
    - name: doris-fe-8030
      protocol: TCP
      port: 8030
      targetPort: 8030
  type: ClusterIP
  selector:
    app: doris-fe
3.4 创建doris-be

kubectl create -f 4.doris-be-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: doris-be
  namespace: de
spec:
  selector:
    matchLabels:
      app: doris-be
  replicas: 1
  template:
    metadata:
      labels:
        app: doris-be
    spec:
      containers:
        - name: doris-be
          image: registry.cn-qingdao.aliyuncs.com/dataease/doris:0.15
          imagePullPolicy: IfNotPresent
          env:
            - name: DORIS_ROLE
              value: be
          volumeMounts:
            - name: doris-be-storage
              mountPath: /opt/doris/be/storage
            - name: doris-be-logs
              mountPath: /opt/doris/be/log
            - name: doris-be-conf
              mountPath: /opt/doris/be/conf/be.conf
      volumes:
        - name: doris-be-storage
          hostPath:
            path: /opt/nfs/dataease/data/be
        - name: doris-be-logs
          hostPath:
            path: /opt/nfs/dataease/logs/be
        - name: doris-be-conf
          hostPath:
            path: /opt/nfs/dataease/conf/be.conf
---
apiVersion: v1
kind: Service
metadata:
  name: doris-be
  namespace: de
spec:
  ports:
    - name: doris-be-9050
      protocol: TCP
      port: 9050
      targetPort: 9050
    - name: doris-be-9060
      protocol: TCP
      port: 9060
      targetPort: 9060
    - name: doris-be-8060
      protocol: TCP
      port: 8060
      targetPort: 8060
    - name: doris-be-8040
      protocol: TCP
      port: 8040
      targetPort: 8040
  type: ClusterIP
  selector:
    app: doris-be
3.5 创建dataease

kubectl create -f 5.dataease-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: dataease
  namespace: de
spec:
  selector:
    matchLabels:
      app: dataease
  replicas: 1
  template:
    metadata:
      labels:
        app: dataease
    spec:
      containers:
        - name: dataease
          image: registry.cn-qingdao.aliyuncs.com/dataease/dataease:v1.5.0
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 8081
              protocol: TCP
          volumeMounts:
            - name: dataease-conf
              mountPath: /opt/dataease/conf
            - name: dataease-logs
              mountPath: /opt/dataease/logs
            - name: dataease-plug
              mountPath: /opt/dataease/plugins/thirdpart
            - name: dataease-kettle
              mountPath: /opt/dataease/data/kettle
      volumes:
        - name: dataease-conf
          hostPath:
            path: /opt/nfs/dataease/conf
        - name: dataease-logs
          hostPath:
            path: /opt/nfs/dataease/logs
        - name: dataease-plug
          hostPath:
            path: /opt/nfs/dataease/plugins
        - name: dataease-kettle
          hostPath:
            path: /opt/nfs/dataease/data/kettle
---
apiVersion: v1
kind: Service
metadata:
  name: dataease
  namespace: de
spec:
  ports:
    - name: dataease
      protocol: TCP
      port: 8081
      targetPort: 8081
      nodePort: 30801
  type: NodePort
  selector:
    app: dataease
4. 检查部署状态
[root@demo-cluster-master-1 ~]# kubectl get pod,svc -n de

NAME                            READY   STATUS    RESTARTS   AGE
pod/dataease-5c566598b6-mjhdr   1/1     Running   0          15h
pod/doris-be-77b5756cf6-zfvch   1/1     Running   0          15h
pod/doris-fe-5d67fc7689-rkv5p   1/1     Running   0          15h
pod/kettle-794d7c6866-rsm78     1/1     Running   1          15h
pod/mysql-78b68c6645-8lczs      1/1     Running   0          15h

NAME               TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                               AGE
service/dataease   NodePort    172.20.45.21             8081:30801/TCP                        15h
service/doris-be   ClusterIP   172.20.234.111           9050/TCP,9060/TCP,8060/TCP,8040/TCP   15h
service/doris-fe   ClusterIP   172.20.8.27              9010/TCP,9020/TCP,9030/TCP,8030/TCP   15h
service/kettle     ClusterIP   172.20.117.187           18080/TCP,9051/TCP,11001/TCP          15h
service/mysql      NodePort    172.20.154.98            3306:30306/TCP                        15h
5. 访问DataEase页面

http://nodeIP:30801

6. 存在问题

在k8s上部署DataEase后,直连数据库是正常的;定时拉取和上传Excel文件功能无法使用;
后续更新解决此问题。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/643361.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号