【GO】K8s 管理系统项目34[Docker方式–应用部署]
创始人
2024-05-31 00:04:19
0

K8s 管理系统项目[Docker方式–应用部署]

1. 数据库

1.1 创建数据库目录

mkdir -p /data/mysql5.7/

1.2 创建容器

docker run --name mysql -itd -h mysql-server -e MYSQL_ROOT_PASSWORD=root -v /data/mysql5.7:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456  mysql:5.7.34 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

1.3 进入mysql容器

docker exec -it mysql mysql -uroot -p123456

1.4 建库建表

create database k8s_dashboard charset utf8;
use  k8s_dashboard
CREATE TABLE `workflow` ( `id` int NOT NULL AUTO_INCREMENT,`name` varchar(32) COLLATE utf8mb4_general_ci NOT NULL,`namespace` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,`replicas` int DEFAULT NULL,`deployment` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,`service` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,`ingress` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,`type` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,`created_at` datetime DEFAULT NULL,`updated_at` datetime DEFAULT NULL,`deleted_at` datetime DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `name` (`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

1.5 数据库确认

1.5.1 服务端口是否正常开启

# ss -ntlp|grep 3306
LISTEN   0         128                       *:3306                   *:*        users:(("docker-proxy",pid=134749,fd=4)) 

1.5.2 远程是否可以访问

telnet 192.168.31.24 3306

请添加图片描述

1.5.3 使用工具连接数据库

确认表可以正常被访问到

请添加图片描述

2. 后端部署

2.1 创建k8s-plantform镜像

2.1.1 创建k8s-plantform工作目录

mkdir -p /data/Dockerfile/k8s-plantform

2.1.2 代码克隆打包

cd /data/Dockerfile/k8s-plantform
git clone https://gitee.com/qqmiller/k8s-plantform.git
tar czf k8s-plantform.tar k8s-plantform
rm -rf k8s-plantform

2.1 3 启动脚本

start.sh

#!/bin/bash
echo "export GO111MODULE=on" >> ~/.profile
echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
source ~/.profile
cd /data/k8s-plantform
go run main.go

2.2 Dockerfile

# 设置基础镜像
FROM centos:7.9.2009# 设置作者信息
LABEL maintainer="qiuqin <13917099322@139.com>"# 创建目录
RUN mkdir -p /data/# 复制应用程序
Add ./k8s-plantform.tar /data/# 安装 Go 和创建目录
RUN cd /etc/yum.repos.d  && \rm -f *.repo 
RUN cd /data/k8s-plantform&& \curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && \echo "export GO111MODULE=on" >> ~/.profile&& \echo "export GOPROXY=https://goproxy.cn" >> ~/.profile&& \source ~/.profile&& \rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO &&\curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo &&\yum install go -y &&\go mod tidyWORKDIR /data/k8s-plantform
ADD ./start.sh /data/k8s-plantform
# 暴露端口
EXPOSE 9091# 启动应用程序
CMD ["/data/k8s-plantform/start.sh"]

2.3 制作镜像

docker build -t k8s-plantform:v1 .

2.4 启动k8s-plantform容器

docker run -it --name k8s-plantform -p 9091:9091 k8s-plantform:v1

2.5 确认

2.5.1 服务端口确认

有9091端口就可以

# ss -ntlp |grep 9091
LISTEN   0         128                       *:9091                   *:*        users:(("docker-proxy",pid=137636,fd=4)) 

2.5.2 api查询确认

有正常返回则说明到k8s-api验证正常,否则检查config文件

http://192.168.31.24:9091/api/k8s/pods?namespace=default

请添加图片描述

2.5.3 验证数据库连接正常

这一步如果没有报错则数据库配置正确,否则检查数据库相关配置

http://192.168.31.24:9091/api/k8s/workflows

请添加图片描述

3. 前端部署

3.1 创建k8s-plantform-fe镜像

3.1.1 创建k8s-plantform工作目录

mkdir -p /data/Dockerfile/k8s-plantform-fe

3.1.2 代码克隆打包

cd /data/Dockerfile/k8s-plantform-fe
git clone https://gitee.com/qqmiller/k8s-plantform-fe.git
tar czf k8s-plantform-fe.tar k8s-plantform-fe
rm -rf k8s-plantform-fe

2.1 3 启动脚本

start.sh

#!/bin/bash
echo 'export NODE_HOME=/usr/local/node' >> /etc/profile  
echo 'export PATH=$NODE_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
cd /data/k8s-plantform-fe/
npm run serve

2.2 Dockerfile

# 设置基础镜像
FROM centos:7.9.2009# 设置作者信息
LABEL maintainer="qiuqin <13917099322@139.com>"# 创建目录
RUN mkdir -p /data/# 复制应用程序
Add ./k8s-plantform-fe.tar /data/# 安装 Go 和创建目录
RUN cd /etc/yum.repos.d  && \rm -f *.repo 
RUN cd /data && \curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && \yum install gcc gcc-c++ wget -y &&\wget https://registry.npmmirror.com/-/binary/node/latest-v16.x/node-v16.15.0-linux-x64.tar.gz && \tar xf  node-v16.15.0-linux-x64.tar.gz &&\ln -sf /data/node-v16.15.0-linux-x64 /usr/local/node &&\ln -sf /data/node-v16.15.0-linux-x64/bin/npm /usr/bin/npm &&\echo 'export NODE_HOME=/usr/local/node' >> /etc/profile  &&\ echo 'export PATH=$NODE_HOME/bin:$PATH' >> /etc/profile &&\source /etc/profile &&\rm -f node-v16.15.0-linux-x64.tar.gz &&\cd /data/k8s-plantform-fe/ &&\npm install &&\sed -i 's/localhost/192.168.31.24/g' /data/k8s-plantform-fe/src/views/common/Config.jsWORKDIR /data/k8s-plantform-fe
ADD ./start.sh /data/k8s-plantform-fe/
# 暴露端口
EXPOSE 9090# 启动应用程序
CMD ["/data/k8s-plantform-fe/start.sh"]

2.3 制作镜像

docker build -t k8s-plantform-fe:v1 .

2.4 启动k8s-plantform容器

docker run -it  --name k8s-plantform-fe -p 9090:9090 k8s-plantform-fe:v1

2.5 确认

2.5.1 服务端口确认

有9090端口就可以

# ss -ntlp|grep 9090
LISTEN   0         128                       *:9090                   *:*        users:(("docker-proxy",pid=138018,fd=4))

2.5.2 登录页面确认

用户名:admin,密码:123456

请添加图片描述

登录后自动跳转到/home页

请添加图片描述

确认各资源是否与实际相符

请添加图片描述

4. Docker-compose方式部署

4.1 安装docker-compose

wget https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose

4.2 配置Docker-compose

mkdir /data/k8s-dashboard
cd /data/k8s-dashboard
cat docker-compose.yaml

如果之前运行过可以直接用docker-compose创建
如果没有创建过库可以在打数据库镜像的时候加个初始化脚本

version: '3'
services:db:image: 'mysql:5.7.34'container_name: dashboard-mysqlrestart: alwaysports:- '3306:3306'environment:MYSQL_ROOT_PASSWORD: "root"MYSQL_ROOT_PASSWORD: "123456"volumes:- /data/mysql2:/var/lib/mysqlapi:image: 'k8s-plantform:v7'container_name: dashboard-apirestart: alwaysports:- '9091:9091'web:image: 'k8s-plantform-fe:v2'container_name: dashboard-webrestart: alwaysports:- '9090:9090'

4.3 启动项目

cd /data/k8s-dashboard
docker-compose up -d
# docker-compose up -d
[+] Running 4/4⠿ Network k8s-dashboard_default  Created                                           0.0s⠿ Container dashboard-api        Started                                           2.1s⠿ Container dashboard-web        Started                                           1.0s⠿ Container dashboard-mysql      Started                                           3.1s

相关内容

热门资讯

面由心生是真的吗? 面由心生是真的吗?人们常说面由心生,心里的想法能影响容貌吗?... 人们常说面由心生,心里的想法能...
活动起名字 活动起名字详细一点我要做学生会的活动宣传展板,分为几个板块,一是精品活动(舞会啊什么的),一是学生会...
松涛声是什么? 松涛声是什么?松涛声是什么?松枝相互碰撞时发出的声音
标准迪士尼电影,《胡桃夹子》画... 标准迪士尼电影,《胡桃夹子》画面很美,是在满足观众少女心吗?不仅是在满足观众少女心,同时也能让更多的...
都说老实人好,你有没有见过老实... 都说老实人好,你有没有见过老实人发怒的瞬间?老实人都没有脾气么?见过 每个的的生活方式不一样 性格更...
儿子因看东西时常眯着眼睛 儿子因看东西时常眯着眼睛儿子因看东西时常眯着眼睛,带他验了一下视力双眼都是近视500度散光300度....
表示次数的词语? 表示次数的词语?使用次数多的,有很多呀,三番两次,更仆难数、指不胜屈、不胜枚举、数不胜数、不计其数千...
什么是基因?基因的作用是什么 什么是基因?基因的作用是什么基因(遗传因子)是产生一条多肽链或功能RNA所需的全部核苷酸序列。基因的...
央视音乐频道4月4日播出的音乐... 央视音乐频道4月4日播出的音乐传奇 《张国荣 不羁的风3》中最后一首歌,经纪人介绍歌迷纪念册时的背景...
相亲结婚和恋爱结婚的好处 相亲结婚和恋爱结婚的好处现在相亲跟自由恋爱没什么区别的,相亲的时候见了双方都有好感那么开始了解对方然...
女朋友不想和我谈过去的事 女朋友不想和我谈过去的事我今天就NC一次,来知道问问各位情场高手下面的问题我女朋友有过一个男朋友,时...
男生总指一个女生说 我妹子,什... 男生总指一个女生说 我妹子,什么意思?那个男生喜欢她(*/ω\*)如果是方言的话,意思就和妹妹差不多...
哪位高手知道哆啦a梦哪一集里大... 哪位高手知道哆啦a梦哪一集里大雄的奶奶给了大雄一个不倒翁?不是新版,是老版的!谢谢!这一集承载了我太...
陶渊明那么有才,为什么儿子却不... 陶渊明那么有才,为什么儿子却不聪明?我们在生活中会有一个习惯性思维,就是认为父母的能力很高,要求他的...
老梁说:人死后到底有没有鬼 老梁说:人死后到底有没有鬼 鬼的起源,是人们对于死亡的惧怕和不了解,古人无法理解人死后灵魂的去向,...
招警面试题 招警面试题公安局岗位,待遇不高,你是如何看的?在选择入警时就是带着围护和改善社会治安的理想加入的,即...
粉笔教师模拟面试是现场吗 粉笔教师模拟面试是现场吗不是面试是通过书面、面谈或线上交流(视频、电话)的形式来考察一个人的工作能力...
叉叉助手火影忍者手游脚本怎么使... 叉叉助手火影忍者手游脚本怎么使用运行火影忍者,然后打开叉叉助手,找到火影管家(试用)这个键,打开后点...
唱吧歌唱比赛的排名怎么排 唱吧歌唱比赛的排名怎么排我见过的都是按有效的免费鲜花数算的(绑定手机的用户送出的鲜花才有效)
场面最大的冷兵器战争片名? 场面最大的冷兵器战争片名?史前一万年?特洛伊木马?