Kubernetes(简称K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。Kubernetes提供了一个运行分布式系统的框架,能够无缝地扩展和管理跨主机集群的容器应用。目前k8s在企业中的应用非常普遍,接下来本文就K8s部署车辆管理系统并实现服务发布做一详细介绍。

1.配置好实验所需镜像仓库和制作好NGINX镜像文件和java环境镜像,上传至镜像服务器,如下图所示:

K8S部署车辆管理系统并实现服务发布_资源文件

2.配置数据库存储数据,具体操作步骤如下首先配置mysql并配置好授权,操作命令如下。
安全mysql数据库软件包并启动服务
yum -y install mysql mysql-server
systemctl enable mysqld --now
配置项目用户
[root@zhcl ~]# mysqladmin -uroot -p password '123456'
[root@zhcl ~]# mysql -uroot -p123456
mysql> create user prouser@% identified by 123456;
mysql> grant all privileges on *.* to prouser@% ;
配置项目数据库
mysql -hlocalhost -uprouser -p'123456' < vehicle_backend/sql/vehicle.sql

3.安装软件包,配置nfs服务,实现系统前后台数据的共享和持久化存储,具体如下。
[root@zhcl ~]# yum -y install nfs-utils
标记修改配置文件如下
[root@zhcl ~]# cat /etc/exports
/project/jar *(rw)
/project/page *(rw)
/project/homepage *(rw)
启动nfs服务
[root@zhcl ~]# systemctl enable nfs-server.service --now
将网站相关数据文件拷贝至nfs共享目录
[root@zhcl ~]#ls /project/page/vehicle_frontend/dist/
css favicon.ico img index.html js
[root@zhcl ~]# ls /project/homepage/
data files homepage.html images index.html plugins resources start_c_1.html start.html start_with_pages.html
[root@zhcl ~]# ls /project/jar/
vehicle-0.0.1-SNAPSHOT.jar

4.配置后端业务相关资源文件,实现数据服务程序构建。

配置后端jar包的pv和pvc,实现后端程序数据共享,资源文件yaml如下

K8S部署车辆管理系统并实现服务发布_jar_02

K8S部署车辆管理系统并实现服务发布_资源文件_03

[root@master zhcl]# kubectl apply -f pv-pvc-jar.yaml

配置后端java服务的Deployment控制器,实现后端业务服务pod的创建和后期版本控制,具体资源文件和执行命令如下:

K8S部署车辆管理系统并实现服务发布_资源文件_04

[root@master zhcl]# kubectl apply -f zhcl-jar.yaml

创建后端service服务,承接前端程序转发过来的业务流量,具体资源文件和执行命令如下:

K8S部署车辆管理系统并实现服务发布_jar_05

[root@master zhcl]# kubectl apply -f zhcl-service.yaml

5.配置前端业务相关资源文件,实现数据共享和持久化存储,同时实现前端网站服务的构建和前后端数据的转发调用。

首先,配置前端主页文件和前端大屏需文件的pv和pvc,实现对前端pod的数据共享。

K8S部署车辆管理系统并实现服务发布_jar_06

K8S部署车辆管理系统并实现服务发布_mysql_07

K8S部署车辆管理系统并实现服务发布_资源文件_08

[root@master zhcl]# kubectl apply -f pv-pvc-frontpage.yaml

[root@master zhcl]# kubectl apply -f pv-pvc-homepage.yaml

创建nginx配置文件的模板,修改部分如下:

K8S部署车辆管理系统并实现服务发布_资源文件_09

创建前端业务pod的控制器,实现前端pod的创建和控制,资源文件如下:

K8S部署车辆管理系统并实现服务发布_jar_10

K8S部署车辆管理系统并实现服务发布_jar_11

6.服务发布与资源对象检查,创建前端业务服务,并且通过NodePort实现业务发布,资源文件如下。

K8S部署车辆管理系统并实现服务发布_mysql_12

项目资源对象service、pod、pvc如下:

K8S部署车辆管理系统并实现服务发布_jar_13

7.服务访问登录测试如下:

K8S部署车辆管理系统并实现服务发布_jar_14

K8S部署车辆管理系统并实现服务发布_jar_15