程序员大家是真惹不起啊!看不下去就动手!没有道理可讲。
为什么会有这样的感慨呢,让小编复述一下事情的原委。
小编的公司在2023年1月份发布了一款面向个人免费的SQL开发工具,可以面向多数据库管理的一款纯Web版工具SQL Studio,跨平台支持Windows、MacOS和Linux三种平台。
一位热心网友私信小编能不能支持容器部署,因为这款产品的研发正忙于解决大家反馈的各种问题,公司暂时并没有提供容器部署,需要再等等。
等待,可能是一位程序员最不能容忍的事情。于是,我们这位可爱的网友,自发动手把我司这款SQL工具制作成了容器,并总结了一段图文。
在此,小编非常感谢这位热心网友,同时也分享给各位程序员同行参考。特别申明,这篇文章的代码并未麦聪软件官方确认,仅供大家参考学习!
以下内容转自B站up主“嘿嘿嘿?!!”,转载正文如下:
摘要
SQL Studio 是由 麦聪软件 开发的一款全 web 的数据库管理和开发工具。可以便捷、高效、简单的管理多种数据库如: Oracle 、 PostgreSQL 、 MySQL 、 SQLite 、 SQL Server 、 DM(武汉达梦) 、 KingBase(人大金仓) 等。
目前 SQL Studio 官方并没有提供容器化的部署方案,本文尝试性的将 SQL Studio 制作成容器并通过 docker 和 kubernetes 将其部署。
环境信息
图1-1 主机信息
软件版本信息
图1-2 软件版本信息
制作镜像
访问麦聪软件 SQL Studio 下载页,注册账号,下载 SQL Studio Linux 版
http://www.maicongs.com/#/home/probation/studio
准备 SQL Studio 资源
[root@vlnx207 sqlstudio]# ls
dockerfile sqlstudio_linux_1.0.2.zip
准备简化启动脚本
vim sqlstudio-start.sh
文件内如如下
#!/bin/bash
SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
APP_JAR=$(cd $SHELL_FOLDER;ls Maicong-SQLStudio-*.jar)
LOG_PATH=$SHELL_FOLDER/log
JAVA_OPTS="
-server
-Xms2g
-Xmx4g
-XX:+UseG1GC
-XX:+UseStringDeduplication
-XX:+AlwaysPreTouch
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCCause
-Xloggc:$LOG_PATH/maicong-sqlstudio-gc.log
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=$LOG_PATH/maicong-sqlstudio-heapdump
-Dfile.encoding=utf-8"
java $JAVA_OPTS -jar $SHELL_FOLDER/$APP_JAR --spring.config.location=config/maicong.yaml
为简化启动脚本添加执行权限
chmod a+x sqlstudio-start.sh
创建 dockerfile 文件
vim dockerfile
文件内如如下
FROM centos:centos7.9.2009
#容器内用户
USER root
#暴露端口
EXPOSE 18888
#修改系统时区
ENV TZ Asia/Shanghai
#加中文支持
RUN set -x \
&& yum -y install kde-l10n-Chinese telnet \
&& yum -y reinstall glibc-common \
&& yum clean all \
&& localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
ENV LANG=zh_CN.UTF-8
ENV LANGUAGE=zh_CN:zh
ENV LC_ALL=zh_CN.UTF-8
#常用软件安装
RUN set -x \
&& yum update -y \
&& yum install -y telnet net-tools wget curl unzip \
&& yum clean all \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/yum/*
#注入sqlstudio程序
WORKDIR /apps/usr/sqlstudio/
COPY ./sqlstudio_linux_1.0.2.zip /apps/usr/sqlstudio
RUN set -x \
&& unzip -q sqlstudio_linux_1.0.2.zip -d /apps/usr/sqlstudio \
&& rm -rf sqlstudio_linux_1.0.2.zip
#注入简化启动脚本
WORKDIR /apps/usr/sqlstudio/linux
COPY ./sqlstudio-start.sh /apps/usr/sqlstudio/linux/
#将sqlstudio自带的jdk变更为全局变量
ENV JAVA_HOME /apps/usr/sqlstudio/linux/jdk1.8.0_351
ENV JRE_HOME ${JAVA_HOME}/
ENV PATH ${JAVA_HOME}/bin:${PATH}
ENV CLASSPATH .:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
#指定启动命令
CMD ["/bin/bash","sqlstudio-start.sh"]
注:使用该 dockerfile 文件,构建出的镜像较大,该 dockerfile 文件是一个针对 SQL Studio 镜像制作的思路的体现。
优化 dockerfile 文件
使用多阶段构建方式,将构建镜像的过程拆分为两个阶段:build 阶段、 environment 阶段,在 build 阶段中将 SQL Studio 官方提供的的程序包 COPY 到构建容器中并安装 unzip 程序将其解压,在 environment 阶段将 build 阶段解压的程序包文件拷入并运行,通过这样的方式将镜像使用的空间减小,因本人习惯于使用 CentOS 作为基础镜像,也可以在构建中使用其他更小的基础镜像来完成 SQL Studio 的镜像制作。
FROM centos:centos7.9.2009 as build
USER root
EXPOSE 18888
WORKDIR /apps/usr/sqlstudio/
COPY ./sqlstudio_linux_1.0.2.zip /apps/usr/sqlstudio/
COPY ./sqlstudio-start.sh /apps/usr/sqlstudio/
RUN set -x \
&& yum -y install unzip \
&& yum clean all \
&& unzip -q sqlstudio_linux_1.0.2.zip -d /apps/usr/sqlstudio/ \
&& cp /apps/usr/sqlstudio/sqlstudio-start.sh /apps/usr/sqlstudio/linux/ \
&& rm -rf sqlstudio_linux_1.0.2.zip \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/yum/*
FROM centos:centos7.9.2009 as environment
USER root
EXPOSE 18888
ENV TZ Asia/Shanghai
WORKDIR /apps/usr/sqlstudio/
COPY --from=build /apps/usr/sqlstudio/linux /apps/usr/sqlstudio/
RUN set -x \
&& yum update -y \
&& yum -y install kde-l10n-Chinese telnet net-tools wget curl \
&& yum -y reinstall glibc-common \
&& yum clean all \
&& localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/yum/*
ENV JAVA_HOME /apps/usr/sqlstudio/jdk1.8.0_351
ENV JRE_HOME ${JAVA_HOME}/
ENV PATH ${JAVA_HOME}/bin:${PATH}
ENV CLASSPATH .:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
ENV LANG=zh_CN.UTF-8
ENV LANGUAGE=zh_CN:zh
ENV LC_ALL=zh_CN.UTF-8
CMD ["/bin/bash","sqlstudio-start.sh"]
分别使用优化前后的 dockerfile 文件构建镜像
dockerfile.old 文件对应优化前的 dockerfile 文件
dockerfile.new 文件对应优化后的 dockerfile 文件
docker build -f dockerfile.old -t sqlstudioold:1.0.2 .
docker build -f dockerfile.new -t sqlstudionew:1.0.2 .
dockerfile 文件优化前后对比
使用如下命令分别打印优化前后镜像的编译信息,查看镜像的占用空间
docker history <镜像ID或镜像名>
优化前
图2-1 优化前容器分层大小
注:图片中的优化前的镜像名和文档中镜像名存在不对应的问题,但是都是使用优化前的 dockerfile 文件构建的镜像不影响实际结果。
优化后
图2-2 优化前容器分层大小
对比前后的镜像变化,减少了两个 COPY 层,分别是拷入的 SQL Studio 官方提供的的程序包 275MB 和我们自行编写的快速启动脚本 535B ,通过分阶段构建的方式我们将镜像的大小从 1.2GB 缩小到了 923MB ,如果使用更小的基础镜像和其他的优化方式可以将镜像进一步压缩。
删除进行优化测试的俩个镜像
docker rmi sqlstudioold:1.0.2
docker rmi sqlstudionew:1.0.2
使用优化的后 dockerfile 文件制作镜像
docker build -f dockerfile -t sqlstudio:1.0.2 .
上传公共云镜像仓库
修改镜像 Tag 标签
docker tag sqlstudio:1.0.2 registry.cn-hangzhou.aliyuncs.com/sql_studio/sql-studio:1.0.2
上传 阿里云 镜像仓库
[root@vlnx211 ~]# docker push registry.cn-hangzhou.aliyuncs.com/sql_studio/sql-studio:1.0.2
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/sql_studio/sql-studio]
4d13d7c57496: Pushed
6331bccae14c: Pushed
658f617325b7: Pushed
174f56854903: Pushed
1.0.2: digest: sha256:2095dff6a460ebb06b9e91e1deacbc06b5e9c8d8479c7dd7f71dae19034d3718 size: 1161
部署镜像
docker环境下部署
docker 部署命令
docker run -d --name=sqlstudio -p 18888:18888/tcp -v /apps/usr/sqlstudio/log/:/apps/usr/sqlstudio/linux/log/ -v /apps/usr/sqlstudio/data/:/apps/usr/sqlstudio/linux/data/ sqlstudio:1.0.2
命令解析
docker run
-d
#后台运行
--name=sqlstudio
#定义容器名称
-p 18888:18888/tcp
#定义容器端口
-v /apps/usr/sqlstudio/log/:/apps/usr/sqlstudio/linux/log/
#配置挂载卷,将sqlstudio产生的日志输出到本地磁盘
-v /apps/usr/sqlstudio/data/:/apps/usr/sqlstudio/linux/data/
#配置挂载卷,将sqlstudio产生的数据输出到本地磁盘
sqlstudio:1.0.2
#指定镜像
验证部署是否正常
查看 SQL Studio 的控制台日志是否启动成功
[root@vlnx207 linux]# docker logs sqlstudio
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)
14:06:09.164 [main] INFO com.mc.MainApplication - Maicong SQLStudio Start...
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.6.7)
2023-01-18 14:06:09.614 [main] INFO com.mc.MainApplication - Starting MainApplication v1.0.0-release using Java 1.8.0_351 on d440cb2cad54 with PID 12 (/apps/usr/sqlstudio/linux/Maicong-SQLStudio-1.0.0-release.jar started by root in /apps/usr/sqlstudio/linux)
2023-01-18 14:06:09.616 [main] INFO com.mc.MainApplication - No active profile set, falling back to 1 default profile: "default"
2023-01-18 14:06:10.268 [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[org.spring.mc.dao.master]' package. Please check your configuration.
2023-01-18 14:06:10.633 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 18888 (http)
2023-01-18 14:06:10.645 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-18888"]
2023-01-18 14:06:10.645 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
2023-01-18 14:06:10.646 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.62]
2023-01-18 14:06:10.737 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2023-01-18 14:06:10.737 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1086 ms
2023-01-18 14:06:11.424 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
2023-01-18 14:06:11.529 [main] INFO o.s.b.a.web.servlet.WelcomePageHandlerMapping - Adding welcome page: ServletContext resource [/index.html]
2023-01-18 14:06:11.670 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-18888"]
2023-01-18 14:06:11.726 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 18888 (http) with context path ''
2023-01-18 14:06:11.727 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed
2023-01-18 14:06:11.738 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
2023-01-18 14:06:11.760 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
2023-01-18 14:06:11.980 [main] INFO com.mc.MainApplication - Started MainApplication in 2.695 seconds (JVM running for 3.299)
2023-01-18 14:06:11.982 [main] INFO com.mc.spring.lifecycle.AppLifecycleListener - App Lifecycle -> start
2023-01-18 14:06:11.983 [main] INFO com.mc.MainApplication - Maicong SQLStudio started successfully.
2023-01-18 15:16:02.870 [http-nio-18888-exec-2] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
2023-01-18 15:16:02.872 [http-nio-18888-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
2023-01-18 15:16:02.886 [http-nio-18888-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 14 ms
2023-01-18 15:16:03.233 [http-nio-18888-exec-2] INFO com.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited
2023-01-18 15:16:06.241 [http-nio-18888-exec-8] INFO com.mc.controller.PublicUserController - User IP address is:11.0.1.1
访问 SQL Studio 的 Web 界面,查看是否可以正常访问
SQL Studio 的 Web 界面如下图
图2-3 SQL Studio 的 Web 界面
kubernetes环境下部署
前期准备
在镜像制作服务器上修改镜像 Tag 标签
docker tag sqlstudio:1.0.2 harbor.sharks.top/sqlstudio/sqlstudio:1.0.2
将镜像上传 harbor 镜像存储
docker push harbor.sharks.top/sqlstudio/sqlstudio:1.0.2
在 NFS 持久化存储服务器创建 SQL Studio 持久化文件目录
mkdir -m 755 -p /apps/usr/nfs_data/ruoyi-cloud-sql-studio/{data,logs
}
在 kubernetes master 节点创建 SQL Studio 的 YAML 资源文件存储目录
mkdir -m 755 -p /root/RuoYi-Cloud/sql-studio/
进入目录
cd /root/RuoYi-Cloud/sql-studio/
创建资源定义文件
创建 SQL Studio 的存储资源定义 YAML 文件,该章节采用 NFS 存储挂载到 PV , PVC 挂载到容器的方式进行,也可以采用其他的存储资源。
vim ruoyi-cloud-sql-studio-storage.yaml
文件内如如下
#SQL Studio 的日志存储 PV
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: ruoyi-cloud-sql-studio-logs-pv
labels:
app: sql-studio
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
mountOptions:
- hard
- nfsvers=4.1
nfs:
server: 11.0.1.207
path: /apps/usr/nfs_data/ruoyi-cloud-sql-studio/logs/
persistentVolumeReclaimPolicy: Retain
#SQL Studio 的数据存储 PV
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: ruoyi-cloud-sql-studio-data-pv
labels:
app: sql-studio
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
mountOptions:
- hard
- nfsvers=4.1
nfs:
server: 11.0.1.207
path: /apps/usr/nfs_data/ruoyi-cloud-sql-studio/data/
persistentVolumeReclaimPolicy: Retain
#SQL Studio 的日志存储 PVC
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: ruoyi-cloud-sql-studio-logs-pvc
namespace: ruoyi-cloud
spec:
resources:
requests:
storage: 5Gi
accessModes:
- ReadWriteOnce
selector:
matchLabels:
app: sql-studio
#SQL Studio 的数据存储 PVC
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: ruoyi-cloud-sql-studio-data-pvc
namespace: ruoyi-cloud
spec:
resources:
requests:
storage: 5Gi
accessModes:
- ReadWriteOnce
selector:
matchLabels:
app: sql-studio
创建 SQL Studio 的 ConfigMap (配置字典)资源定义 YAML 文件
vim ruoyi-cloud-sql-studio-ConfigMap.yaml
文件内容如下
---
apiVersion: v1
kind: ConfigMap
metadata:
labels:
app: sql-studio
namespace: ruoyi-cloud
name: sql-studio-maicong.yaml
namespace: ruoyi-cloud
data:
maicong.yaml: >
# ======================== MaiCongSoftWare Configuration =========================
#
# NOTE: MAICONGSOFTWARE comes with reasonable defaults for most settings.
# Before you set out to tweak and tune the configuration, make sure you
# understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# http://www.maicongs.com/#/listdocu
#
# -------------------------------------- Network --------------------------------------
# set the server run port for backend and frontend, this is backend port
# must
server.port: 18888
# ----------------------------------------- DB configuration ----------------------------------------
master.datasource.initial-size: 10
master.datasource.max-active: 100
master.datasource.min-idle: 10
# set the sqlite local path (have default if not set)
#master.datasource.url: jdbc:sqlite:xxx/sqlite.db
master.datasource.url:
# ---------------------------------------- LOG ----------------------------------------
# log level, you can set info, error, warn, debug
logging.level.com.mc.dao: info
# --------------------------------------- MYBATIS ------------------------------------
mybatis.check-config-location: true
mybatis.config-location: classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations: classpath:mybatis/mapper/*.xml
mybatis.type-aliases-package: com.mc.entity
# -------------------------------------- Network --------------------------------------
server.tomcat.accept-count: 800
server.tomcat.max-connections: 20000
server.tomcat.max-max-threads: 1000
server.tomcat.uri-encoding: UTF-8
# -------------------------------------- SPRING ---------------------------------------
spring.http.enncoding.charset: UTF-8
spring.http.enncoding.enabled: true
spring.http.enncoding.force: true
spring.messages.encoding: UTF-8
spring.mvc.async.request-timeout: 180000
spring.mvc.pathmatch.matching-strategy: ant_path_matcher
spring.messages.basename: i18n/messages
创建 SQL Studio 的部署资源定义 YAML 文件
vim ruoyi-cloud-sql-studio-Deployment-Service.yaml
文件内容如下
---
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
k8s.kuboard.cn/displayName: SQL Studio
labels:
k8s.kuboard.cn/layer: monitor
k8s.kuboard.cn/name: sql-studio
name: sql-studio
namespace: ruoyi-cloud
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s.kuboard.cn/layer: monitor
k8s.kuboard.cn/name: sql-studio
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
annotations:
kubectl.kubernetes.io/restartedAt: '2023-01-18T22:44:29+08:00'
creationTimestamp: null
labels:
k8s.kuboard.cn/layer: monitor
k8s.kuboard.cn/name: sql-studio
spec:
containers:
- image: 'harbor.sharks.top/sqlstudio/sqlstudio:1.0.2'
imagePullPolicy: Always
lifecycle:
preStop:
exec:
command:
- /bin/bash
- /apps/usr/sqlstudio/linux/
- stop
livenessProbe:
failureThreshold: 3
httpGet:
path: /
port: 18888
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: sql-studio
ports:
- containerPort: 18888
name: server
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /
port: 18888
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources:
limits:
memory: 4000Mi
requests:
memory: 2000Mi
startupProbe:
failureThreshold: 3
httpGet:
path: /
port: 18888
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /apps/usr/sqlstudio/linux/data/
name: data
- mountPath: /apps/usr/sqlstudio/linux/log/
name: logs
- mountPath: /etc/localtime
name: timezone
readOnly: true
- mountPath: /apps/usr/sqlstudio/linux/config/maicong.yaml
name: maicong-yaml
readOnly: true
subPath: maicong.yaml
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: sharks-harbor
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: logs
persistentVolumeClaim:
claimName: ruoyi-cloud-sql-studio-logs-pvc
- name: data
persistentVolumeClaim:
claimName: ruoyi-cloud-sql-studio-data-pvc
- hostPath:
path: /etc/localtime
type: File
name: timezone
- configMap:
defaultMode: 420
items:
- key: maicong.yaml
path: maicong.yaml
name: sql-studio-maicong.yaml
name: maicong-yaml
---
apiVersion: v1
kind: Service
metadata:
annotations: {}
labels:
k8s.kuboard.cn/layer: monitor
k8s.kuboard.cn/name: sql-studio
name: sql-studio
namespace: ruoyi-cloud
spec:
clusterIP:
externalTrafficPolicy: Cluster
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: server
nodePort: 32888
port: 18888
protocol: TCP
targetPort: 18888
selector:
k8s.kuboard.cn/layer: monitor
k8s.kuboard.cn/name: sql-studio
sessionAffinity: None
type: NodePort
导入资源定义文件
导入存储资源定义 YAML 文件
kubectl apply -f ruoyi-cloud-sql-studio-storage.yaml
输出如下
[root@vlnx201 sql-studio]# kubectl create -f ruoyi-cloud-sql-studio-storage.yaml
persistentvolume/ruoyi-cloud-sql-studio-logs-pv created
persistentvolume/ruoyi-cloud-sql-studio-data-pv created
persistentvolumeclaim/ruoyi-cloud-sql-studio-logs-pvc created
persistentvolumeclaim/ruoyi-cloud-sql-studio-data-pvc created
导入配置字典资源定义 YAML 文件
kubectl apply -f ruoyi-cloud-sql-studio-ConfigMap.yaml
输出如下
[root@vlnx201 sql-studio]# kubectl apply -f ruoyi-cloud-sql-studio-ConfigMap.yaml
configmap/sql-studio-maicong.yaml created
导入部署资源定义 YAML 文件
kubectl apply -f ruoyi-cloud-sql-studio-Deployment-Service.yaml
输出如下
[root@vlnx201 sql-studio]# kubectl apply -f ruoyi-cloud-sql-studio-Deployment-Service.yaml
deployment.apps/sql-studio created
service/sql-studio created
功能验证
请参考通过 docker 部署 SQL Studio 章节,该部分不在赘述
SQL Studio平台的使用
使用如下地址访问 SQL Studio
http://11.0.1.207:18888/#/login
SQL Studio 的 WEB 登录界面如下图
图3-1 SQL Studio 的 WEB 登录界面
本次 SQL Studio 设置的账号密码如下
图3-2 账号信息
注:首次登陆时,填写的账号密码即为之后使用中的账号密码
SQL Studio 的 WEB 工作界面如下图
图3-3 SQL Studio 的 WEB 工作界面
SQL Studio 用户管理
图3-4 SQL Studio 用户管理
测试用户信息如下,请根据实际情况进行配置
图3-5 测试用户信息
SQL Studio 添加数据源
图3-6 SQL Studio 添加数据源
SQL Studio 配置数据源
图3-7 SQL Studio 配置数据源
测试数据源信息如下,请根据实际情况进行配置
图3-8 测试数据源信息
SQL Studio 简单操作
新建查询
图3-9 新建查询
导出数据
图3-10 导出数据
如需了解 SQL Studio 更多详细操作,请移步如下地址
http://www.maicongs.com/#/home/web