智能展厅中控系统提升社会发展新动能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能展厅中控系统提升社会发展新动能相关的知识,希望对你有一定的参考价值。

前言

现在很多企业已经进入了docker容器化的部署方式,容器化的部署离不开容器编排的工具,现在用的最多的当属K8S的编排工具。那项目从0开始时,一直进入到k8s中,整体流程是什么,以及用到什么工具组件呢?今天老顾就从整体上面来介绍一下。

整体流程

技术图片

 

工作流程

1)开发人员提交代码到Git版本仓库;
2)Jenkins人工/定时触发项目构建;
3)Jenkins拉取代码、代码编码、打包镜像、推送到测试环境的镜像仓库;
4)k8s拉取镜像产生pod中的容器
5)测试环境中测试没有问题后,把镜像同步到生产的镜像仓库中
6)生产环境K8S部署镜像

git

git现在有的私有仓库,有两种选择gitlab,gogs。

gogs

技术图片

 

一开始老顾选择的gogs,因为比较轻量级,消耗服务器的资源也很少。但是gogs现有版本中缺少很重要的功能,就是在web界面上面操作拉取分支的功能,这个功能是平常经常用的,但比较可惜的是gogs现在不支持。

gitlab

技术图片

 

gitlab功能还是比较强大的,唯一的缺点就是比较耗服务器资源,最好用4G内存承载,要不然很慢哦

jenkins

技术图片

 

 

技术图片

 

jenkins应该是持续集成的唯一选择了,功能非常强大,强大的插件功能;不同的团队应用jenkins的方式也不尽相同。

拉取git的插件Git Parameter

动态获取Git仓库Branch、Tag
技术图片

 

技术图片

 

配置好后,在build时,你可以选择不同的分支

技术图片

 

利用pom.xml文件构建项目

技术图片

 

在Jenkins本机镜像构建与推送到镜像仓库

技术图片

 

REPOSITORY=192.168.110.10/qy-tribe/user-server:${branch}
#构建镜像

cat > Dockerfile << EOF

FROM openjdk:8-jdk-alpine

RUN rm -rf /usr/local/qy-tribe

COPY target/*.jar /usr/local/qy-tribe/user-server.jar

ENTRYPOINT java -jar /usr/local/qy-tribe/user-server.jar

EOF

docker build -t $REPOSITORY .

#上传镜像

docker push $REPOSITORY

上面是直接在jenkins的shell中输入了构建镜像脚本。

其实还有一种常用的方式就是在项目工程下新建Dockerfile文件,在可以利用mvn插件

技术图片

 

在jenkins中使用shell

mvn dockerfile:build dockerfile:push

这样就更简单一点

注意点:因为我们会对同一个版本会构建多次,镜像images会产生多次,会把上一次的镜像的tag更改为none;我们要记得清除哪些被替换的image,可以使用脚本

注意点:jenkins结点需要安装docker哦,不要忘了

docker images | grep none | awk ‘{print $3}‘ | xargs docker rmi

镜像仓库

现在市面上的镜像仓库,不二人选肯定是harbor了,使用起来比较简单,功能也是比较强大的

技术图片

 

harbor的安装推荐使用docker方式安装,比较方便

https://github.com/goharbor/harbor/releases/download

harbor中有个复制管理,即是同步镜像的功能。

很多网上有harbor的高可用,以及集群的架构方案,老顾认为没有必要,应该harbor是在内部使用,高可用的需求不强烈。我们只要保证镜像文件不丢失即可,正好harbor的复制管理即可完成此功能。

所以我们只要架设几个harbor就ok了

k8s

k8s集群安装是比较复杂的,网上介绍的有两种方式kubeadm方式和二进制方式,我们今天介绍更简单的方式,只要几句命令就ok。

利用sealyun工具,利用go语言方式,能够快速搭建k8s集群

结点规划

主机名

IP地址

master01

192.168.0.2

master02

192.168.0.3

master03

192.168.0.4

work01

192.168.0.5

work02

192.168.0.6

注意:

系统支持:centos7.2以上 ubuntu16.04以上 内核推荐4.14以上

推荐配置:centos7.4

注意事项

1)必须同步所有服务器时间

2)所有服务器主机名不能重复

#下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到#bin目录即可, release页面也可下载
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos &&
chmod +x sealos && mv sealos /usr/bin

#下载离线资源包
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/d551b0b9e67e0416d0f9dce870a16665-1.18.0/kube1.18.0.tar.gz


#安装一个三master的kubernetes集群
sealos init --passwd 123456
--master 192.168.0.2 --master 192.168.0.3 --master 192.168.0.4
--node 192.168.0.5 --node 192.168.0.6
--pkg-url /root/kube1.18.0.tar.gz
--version v1.18.0

上面就是3条命令,就可以帮我们完成k8s集群的搭建,等待的时长根据自身的网络环境。

注意:上面的passwd 123456,是5个服务器结点的root密码,一定要一样哦

k8s界面控制台

安装好了k8s后,只能用命令方式控制k8s,是很不方便的,所以我们还需要安装一个界面控制台,我们这里选择强大的kuboard

wget https://github.com/sealstore/dashboard/releases/download/v1.0-1/kuboard.tar


sealos install --pkg-url kuboard.tar

到这里我们完成了k8s的安装,来看看炫酷的界面

技术图片

 

创建Deployment

技术图片

 

技术图片

 

kuboard的优势,可以在逻辑上面区分不同的层级,可以方便的让我们一览系统架构

技术图片

 

ingress安装

为了让集群外可以访问集群里面的访问,需要安装ingress

kubectl apply -f https://kuboard.cn/install-script/v1.16.2/nginx-ingress.yaml
技术图片

 

配置service服务,以及ingress

技术图片

 

总结

今天整体介绍把一个微服务项目,如何部署到k8s中,经过什么流程,以及需要什么工具,而且推荐了市面上面的主流工具。尤其介绍了k8s集群的搭建的工具,很推荐哦

当然具体工具的使用细节,需要小伙伴们自行搭建,里面会遇到很多的坑,遇到坑就去解决,这样理解起来会更好。

以上是关于智能展厅中控系统提升社会发展新动能的主要内容,如果未能解决你的问题,请参考以下文章

记一次项目重构

智能中控系统软件通过哪些技术研发出来的?

SpringBoot2 整合Ehcache组件,轻量级缓存管理

数据智能应用加速落地,每日互动巩固发展新动能

SaaS电商系统如何为家用电器行业发展注入新动能

循环智能亮相WAIC,以自然语言提升人员产能