可视化bi工具datart部署到k8s

news2025/4/9 16:25:02

目录

1. 前言

 2. 安装

2.1 mysql初始化

 2.2 datart配置文件持久化

2.3 文件挂载

2.4 部署

3. 登录及创建管理帐号


1. 前言

datart 是新一代数据可视化开放平台,支持各类企业数据可视化场景需求,如创建和使用报表、仪表板和大屏,进行可视化数据分析,构建可视化数据应用等。

官方部署文档可参考:部署 | datart (running-elephant.github.io)

官方有源码安装和docker部署两种方式,这里通过k8s进行部署,需要准备mysql(外置环境),pvc存储(这里用nfs)

 2. 安装

2.1 mysql初始化

支持mysql 5.7+以上,这里使用mysql 8.0,1.0.0-beta.2 版本以前,需要手动执行bin/datart.sql来初始化数据库。此版本及以上版本,创建好数据库即可,在初次连接时会自动初始化数据库

# datart 目前支持配置 MySQL 作为应用数据库;需要 MySQL 5.7 及以上版本。配置步骤如下:
# 创建数据库,指定数据库编码为 utf8
mysql> CREATE DATABASE `datart` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

创建帐号并授权

CREATE USER 'datart'@'%' IDENTIFIED BY 'password';
GRANT privileges ON datart.* TO 'datart'@'%';
flush privileges; 

 2.2 datart配置文件持久化

将配置文件datart.conf通过configmap进行管理,配置文件示例如下

# datart.conf
# ====== 应用数据库配置 ======
# 数据库IP或域名
datasource.ip=***
# 数据库端口
datasource.port=3306
# 数据库名称
datasource.database=datart
# 用户名
datasource.username=datart
# 密码
datasource.password=***
# ====== 应用服务器配置 ======
# 服务器端口
server.port=8080
# 服务器地址
#   Web 服务所绑定的本机网卡地址,一般为内网地址
server.address=0.0.0.0
# ====== datart 全局配置 ======
# 应用主页地址
#   浏览器访问应用主页输入的地址,一般为公网地址
datart.address=http://127.0.0.1:8080

# Chrome WebDriver 地址
datart.webdriver-path=http://127.0.0.1:4444/wd/hub

# 是否允许注册账户
datart.user.register=true
# 注册账户时,是否需要邮件激活
datart.send-mail=false

# 注册邮件有效期/小时, 默认48小时
datart.register.expire-hours=
# 邀请邮件有效期/小时, 默认48小时
datart.invite.expire-hours=

# 租户管理模式:platform-平台(默认),team-团队
datart.tenant-management-mode=team

# redis缓存
redis.port=6379
redis.host=**
redis.password=***

保存以上配置文件为:datart.conf,然后通过命令创建configmap

kubectl create configmap datart-conf-cm --from-file=datart.conf 

2.3 文件挂载

在默认情况下,用户在应用中生成文件(头像、文件数据源等)保存在 files 路径下。为保证在应用升级时这些文件得以保留,可以将这个路径挂载到pvc存储;容器中挂载路径:/datart/files 即可。

这里使用nfs存储创建pvc: datart-files-pvc,yaml文件如下

apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    pv.kubernetes.io/bound-by-controller: 'yes'
spec:
  accessModes:
    - ReadWriteMany
  capacity:
    storage: 20Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: datart-files-pvc
  csi:
    driver: nasplugin.csi.alibabacloud.com
    volumeAttributes:
      path: /datart-files
      server: ****.nas.aliyuncs.com
      vers: '3'
    volumeHandle: datart-pv
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nas
  volumeMode: Filesystem
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: 'yes'
    pv.kubernetes.io/bound-by-controller: 'yes'
  name: datart-files-pvc
  namespace: bigdata-prod
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 20Gi
  selector:
    matchLabels:
      alicloud-pvname: datart-pv
  storageClassName: nas
  volumeMode: Filesystem
  volumeName: datart-pv  

2.4 部署

镜像使用官方最新版本:datart/datart

服务端口:8080

通过ingress配置域名访问

部署文件deployment.yaml如下

apiVersion: v1
kind: Service
metadata:
  name: datart
spec:
  selector:
    app: datart
  ports:
    - name: http
      protocol: TCP
      port: 8080
      targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: datart
  labels:
    app: datart
spec:
  replicas: 1
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate
  selector:
    matchLabels:
      app: datart
  template:
    metadata:
      labels:
        app: datart
    spec:
      restartPolicy: "Always"
      containers:
      - name: datart
        image: datart/datart
        imagePullPolicy: "Always"
        resources:
          limits:
            cpu: "4000m"
            memory: "2Gi"
          requests:
            cpu: "50m"
            memory: "1Gi"
        ports:
        - containerPort: 8080
          name: http
          protocol: TCP 
        volumeMounts:
          - name: datart-conf
            mountPath: /datart/config/datart.conf
            subPath: datart.conf
          - name: datart-files
            mountPath: /datart/files
        readinessProbe:
          failureThreshold: 3
          periodSeconds: 5
          initialDelaySeconds: 30
          successThreshold: 1
          tcpSocket:
            port: 8080
        livenessProbe:
          tcpSocket:
            port: 8080
          initialDelaySeconds: 30
          periodSeconds: 10
      volumes:
        - name: datart-conf
          configMap:
            name: datart-conf-cm
        - name: datart-files
          persistentVolumeClaim:
            claimName: datart-files-pvc
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: datart-ingress
spec:
  ingressClassName: nginx
  rules:
  - host: datart.test.cn
    http:
      paths:
      - backend:
          service:
            name: datart
            port:
              number: 8080
        path: /
        pathType: Prefix

 部署命令

kubectl apply -f deployment.yaml

3. 登录及创建管理帐号

打开ingress配置的域名: http://datart.test.cn

部署完成后首次登录需要注册一个帐号,做为组织的拥有者,自行配置即可完成后效果如下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/793034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python面向对象(三)(继承、封装)

面向对象的三大特性 面向对象编程,是许多编程语言都支持的一种编程思想。 简单理解是:基于模板(类)去创建实体(对象),使用对象完成功能开发。 面向对象包含3大主要特性: 封装 封…

ssl证书安装后还是显示不安全怎么办?解决办法来了

ssl证书安装后还是显示不安全怎么办?一般网站在部署安装ssl证书之后,浏览器的不安全显示就会消除。但有时候,在证书安装完成后,浏览器仍然会出现不安全提示,这时候我们可以按照以下的步骤一一排查解决。 1、确认安装的…

numpy广播机制介绍

广播 广播机制的意义:广播描述了在算术运算期间NumPy如何处理具有不同形状的数组。受某些约束条件的限制,较小的数组会在较大的数组中“广播”,以便它们具有兼容的形状。 在对两个数组进行操作时,NumPy按元素对它们的形状进行比…

UE5.1移动端PreintegratedSkinBxDF解析

Part 1 头文件 MobileBasePassPixelShader.usf 主要看Main函数: #if MOBILE_MULTI_VIEWResolvedView ResolveView(BasePassInterpolants.MultiViewId); #elseResolvedView ResolveView(); #endif这玩意Shader文件找不到,感觉是个全局变量的东西。万幸…

【JDK新特性】必会_Stream API

【必看】原创声明:转载请注明作者 & 文章来源:都在用Stream流? ​​​​​​​ hello,我是小索奇,这次讲解JDK 8新特性的重点!Stream流,到后期学习框架时候你会发现大量的Stream流出现&…

波奇学C++:写实拷贝,_buf数组

我们知道当自定义对象如果在堆上开空间,那么拷贝构造时会深拷贝,深拷贝会加大内存开销,用写实拷贝(也叫延迟拷贝)可以在深浅拷贝中取得平衡。 浅拷贝问题: 析构两次 一个对象修改会影响另一个 用引用计数来解决析构问题 拷贝构造时…

商品库存管理系统设计与实现(Vue+SpringBoot+MySQL)

一、项目背景 当今,我国科技发展日新月异,各类企业迅速崛起,商品类型日益繁多,产品数量急剧增加,企业经营模式越来越多样,信息处理量不断加大,对库存管理提出了更高的要求。通过本系统&#xff…

[详细教程+渠道对接+实战陪跑社区]抖音超火小说推文新玩法

科思创业汇 大家好,这里是科思创业汇,一个轻资产创业孵化平台。赚钱的方式有很多种,我希望在科思创业汇能够给你带来最快乐的那一种! 本人为科思创业汇,分享网络项目案例! 是啊,公益活动又来…

白话机器学习笔记(二)学习分类

分类用图形来解释,把他想象为有大小有方向带箭头的向量。 设权重向量为 w w w,虚线为使权重向量称为法线向量的直线。 直线的表达式为: w ⋅ x 0 w\cdot x0 w⋅x0 (两个向量的内积) 也可写为: w ⋅ x ∑ i 1 n w i x i w 1…

Python(基于Pyusb)与C#(基于LibUsbDotNet)USB通信速度对比

1、实验背景 项目需求:下位机ZYNQ,需设计上位机与其通信,通信协议USB2.0。ZYNQ端固定Buffer长度为16k,即上位机向ZYNQ发送任意数据,ZYNQ每次反馈16k长度buffer。现对Python(基于Pyusb)与C#(基于LibUsbDotNet)的USB通信…

Windows 微信更新内核(小程序框架)的指南

WMPF-PC 更新指引: 准备工作 1. 安装最新微信客户端( https://dldir1.qq.com/weixin/Windows/WeChatSetup.exe ) 2. 在微信在搜索栏输入:showcmdwnd (包括前面冒号) 中输入以下代码以开启 wmpf 新内核版本(已经是现网默认,可以…

STM32+FPGA的导常振动信号采集存储系统

摘 要 : 针 对 工 厂 重 要 设 备 运 输 途 中 可 能 损 坏 的情 况 , 本 文 设计 了一 套 采 用 STM32F103+F&#xff3…

2023年FPGA好就业吗?

FPGA岗位有哪些? 从芯片设计流程来看,FPGA岗位可以分四类 产品开发期:FPGA系统架构师 芯片设计期:数字IC设计工程师、FPGA开发工程师 芯片流片期:FPGA验证工程师 产品维护期:FAE工程师 从行业上来说&#x…

后端Linux软件安装大全[JDK、Tomcat、MySQL、Irzsz、Git、Maven、Redis、Nginx...持续更新中]

文章目录 前言1.软件安装方式2.安装jdk3.安装Tomcat4.安装MySQL5.安装lrzsz6. 安装Git7. 安装Maven8. 安装Redis9. 安装Nginx 总结 前言 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新…

redhat官网下载7.9版本iso

redhat官方地址 https://developers.redhat.com/products/rhel/download 下载前会让你先登录,如果没有账号就需要先去注册账号哟。

骨传导耳机对身体有没有别的危害?骨传导耳机有什么好处?

骨传导耳机对身体有没有别的危害? 在此之前,我们先了解一下骨传导的原理:骨传导就跟它的名字一样通过骨头传声,主要是借助头部颅骨传递到听觉中枢,这种传播方式省略了直接接触耳道和耳膜。打个比方,就是我们…

Java虚拟机——前端编译优化

Java的编译期是有上下文语境影响的,不同语境下可以指不同的过程: 可以是前端编译器,把*.java文件转变成*.class文件的过程。 JDK的Javac、Eclipse JDT中的增量式编译器 可以指Java虚拟机的即时编译器(JIT编译器)在运…

json-server创建静态服务器2

上次写的 nodejs创建静态服务器 这次再来个v2.0 利用json-server很方便就可以实现。 vscode打开文件夹,文件夹所在终端: json-server.cmd --watch db.json 这里视频教程是没有上述命令标红的,但是会报错,具体不详&#xff0c…

DSSAT模型教程

详情点击链接:R语言与作物模型(DSSAT模型)教程 前言 随着基于过程的作物生长模型(Process-based Crop Growth Simulation Model)的发展,R语言在作物生长模型和数据分析、挖掘和可视化中发挥着越来越重要的…

基于 Jmeter 的轻量级云压测平台的原理与实现

目录 前言: 背景 云压测平台要解决什么问题 云压测平台为什么要自己实现 实现语言及内核 开发语言 Jmeter 的优缺点 Jmeter 压测启动的方式 从需求看实现 核心需求 抛弃的需求 1:在线生成测试脚本 抛弃的需求 2:在线监控服务器指…