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

news2024/10/2 10:31:10

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 tidy

WORKDIR /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.js

WORKDIR /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-mysql
    restart: always
    ports:
      - '3306:3306'
    environment:
      MYSQL_ROOT_PASSWORD: "root"
      MYSQL_ROOT_PASSWORD: "123456"
    volumes:
      - /data/mysql2:/var/lib/mysql
  api:
    image: 'k8s-plantform:v7'
    container_name: dashboard-api
    restart: always
    ports:
      - '9091:9091'
  web:
    image: 'k8s-plantform-fe:v2'
    container_name: dashboard-web
    restart: always
    ports:
      - '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

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

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

相关文章

layui框架实战案例(19):layui-table模块表格综合应用(筛选查询、导入导出、群发短信、一键审核、照片展示、隐私加密)

系列文章目录 layui动态表格翻页和搜索的代码分析layui框架实战案例(3)&#xff1a;layui上传错误请求上传接口出现异常解决方案layui框架实战案例(9)&#xff1a;layPage 静态数据分页组件layui框架实战案例(10)&#xff1a;短信验证码60秒倒计时layui框架实战案例(11)&#…

《实践论》笔记及当下反思(二)

目录 笔记 1、马克思主义所说的绝对真理是什么&#xff1f; 2、客观现实世界的变化运动永远没有完结&#xff0c;人们在实践中对于真理的认识也就永远没有完结 3、改造客观世界&#xff0c;也改造自己的主观世界-——改造自己的认识能力 4、实践、认识、再实践、再认识&…

ARP报文内容详细分析

ARP报文格式如图&#xff1a; 字段1&#xff1a;ARP请求的目的以太网地址&#xff0c;全1时&#xff0c;代表广播地址。 字段2&#xff1a;发送ARP请求的以太网地址。 字段3&#xff1a;以太网帧类型表示后面的数据类型&#xff0c;ARP请求和ARP应答此字段为&#xff1a;0x0806…

SourceTree 重置提交、合并、撤销、回滚

SourceTree重置当前分支到此次提交使用场景&#xff1a;已提交未推送的修改撤销、想把某一次的错误修改全部撤销当前发布代码有bug需要切到上次提交发布版本Git中的HEAD解释# 使用最新一次提交重制暂存区git reset HEAD -- filename# 使用最新一次提交重制暂存区和工作区git re…

SpringBoot——统一功能处理

处理登陆拦截 上一片博客中讲到SpringAOP可以对页面进行拦截&#xff0c;我们可以用SpringAOP实现对登陆的拦截 但是由于拦截需要HttpSession对象&#xff0c;并且之后还需要页面重定向&#xff0c;因此在实际应用中&#xff0c;并不用SpringAOP进行登陆拦截&#xff0c;而是…

HBase---idea操作Hbase数据库并且映射到Hive

idea操作Hbase数据库并且映射到Hive 文章目录idea操作Hbase数据库并且映射到Hiveidea操作Hbase数据库环境准备启动服务创建Maven工程在测试类中编写初始化方法在测试类中编写关闭方法在测试类中编写创建命名空间方法在测试类中编写创建表方法在测试类中编写查看表结构方法在测试…

tmall.product.match.schema.get( 获取匹配产品规则 )

&#xffe5;免费必须用户授权 ISV发布商品前&#xff0c;需要先查找到产品ID&#xff0c;这个接口返回查找产品规则入参规则 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 点击获取key和secret 请求示例 TaobaoClient …

ORACLE SQL格式化小数点

ORACLE SQL格式化小数点 select CONCAT(TO_CHAR(0.00100,‘990.999’),‘%’) as a0 , CONCAT(TO_CHAR(1100,‘990.999’),‘%’) as a1 , CONCAT(TO_CHAR(0.236100,‘990.999’),‘%’) as a2 , CONCAT(TO_CHAR(0.0200100,‘990.999’),‘%’) as a3 , CONCAT(TO_CHAR(1.0310…

状态机的Go语言实现版本

一、状态机 1. 定义 有限状态机&#xff08;Finite-state machine, FSM&#xff09;&#xff0c;简称状态机&#xff0c;是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。 2. 组成要素 现态&#xff08;src state&#xff09;&#xff1a;事务当前所处的状…

Java程序中空指针异常的最佳实践

1、空指针问题 NullPointerException 是 Java 代码中最常见的异常&#xff0c;将其最可能出现的场景归为以下 5 种&#xff1a; 参数值是 Integer 等包装类型&#xff0c;使用时因为自动拆箱出现了空指针异常&#xff1b;字符串比较出现空指针异常&#xff1b;诸如 Concurren…

新建vite+vue3+ts项目,以及解决过程中遇到的问题

目录 一、新建vitevue3ts项目 二、解决过程中遇到的问题 解决报错&#xff1a;Module ‘“xx.vue“‘ has no default export. 解决报错&#xff1a;Error [ERR_MODULE_NOT_FOUND]: Cannot find package ‘uuid’ imported from xxx的解决 解决报错&#xff1a;[plugin:vi…

如何选择一款数据库?

1主流数据库技术介绍常见的数据库模型主要分为SQL关系型数据库和NoSQL非关系型数据库。其中关系型数据库分为传统关系数据库和大数据数据库&#xff0c;非关系型数据库分为键值存储数据库、列存储数据库、面向文档数据库、图形数据库、时序数据库、搜索引擎存储数据库及其他&am…

Java集合类

在了解Java集合类之前&#xff0c;我们必须首先了解java.util包&#xff0c;这个包提供了所有集合相关的接口和类。 集合是用来存储数据类型的一种数据结构&#xff0c;提到存储数据类型的数据结构我们最先想到的应该是数组&#xff0c;接下来我们简单回顾下Java中集合和数组的…

Xilinx ZYNQ 7000 HDMI

High-Definition Multimedia Interface (HDMI) 参考xilinx application note XAPP460 HDMI来自High-Definition Multimedia Interface 高分辨率多媒体接口&#xff0c;多媒体一般包含图像和声音。 Transition Minimized Differential Signaling (TMDS) 是HDMI的物理层。 TMDS…

春招冲刺(十一):前端面试之网络总结

网络总结 Q1: GET和POST的请求的区别 应用场景&#xff1a;Get是一个幂等请求&#xff0c;一般用于请求资源。post不是幂等请求&#xff0c;一般用于修改资源。缓存&#xff1a;Get请求一般缓存&#xff0c;Post一般不缓存报文格式&#xff1a;Get请求体一般为空&#xff0c;…

【Linux】linux | 修改dns | 修改网卡dns

一、说明1、业务需要&#xff0c;需要修改服务的dns的地址2、改成阿里的二、操作查询需要修改dns的网卡ifconfig说明1&#xff1a; 留意ens192&#xff0c;即网卡名称查看网卡配置文件信息cd /etc/sysconfig/network-scripts ll备份cp /etc/sysconfig/network-scripts/ifcfg-en…

Advantest爱德万直流电源维修电压电流发生器ADCMT系列

Advantest爱德万电源维修常见型号&#xff1a;ADCMT6240A/B&#xff1b;R6243/R6246&#xff1b;ADCMT系列。 维修品牌&#xff1a; 安捷伦Agilent/HP、泰克Tektronix、安立Anritsu、罗德施瓦茨、爱德万Advantest、艾法斯/马可尼IFR/Marconi、吉时利Keithley、日立Hitachi、 松…

【BOOST C++】组件编程(2)-- 组件的设计原理

GitHub - ros2/demos at foxy 一、说明 为了研究ROS2的组件编程&#xff0c;首先要理解如何何为组件。组件本是微软的发明物体&#xff0c;但是在ubuntu上需要自己从底层实现&#xff0c;就说ROS2不用你写&#xff0c;但是就能看明白也是需要一点理论功底的。本篇按照COM内幕的…

【2223sW3】LOG1

写在前面 好好学习&#xff0c;走出宿舍&#xff0c;走向毕设&#xff01; 一些心路历程记录&#xff0c;很少有代码出现 因为鬼知道哪条代码到时候变成毕设的一部分了咧&#xff0c;还是不要给自己的查重挖坑罢了 23.3.6 lammps代码修改 因为学姐要中期答辩了&#xff0c;…

用Biome-BGC模型如何模拟水循环过程

在Biome-BGC模型中&#xff0c;对于碳的生物量积累&#xff0c;采用光合酶促反应机理模型计算出每天的初级生产力(GPP)&#xff0c;将生长呼吸和维持呼吸减去后的产物分配给叶、枝条、干和根。生物体的碳每天都按一定比例以凋落方式进入凋落物碳库&#xff1b;对于水份输运过程…