截止昨天已经对前端和后端应用进行容器化部署,并顺利实现前后端交互。那么如果像此类前后端项目越来越多的时候,不好管理该怎么办,相信大家已经知道了,就是利用容器编排平台,目前主流的K8s,高扩展性、高性能都是其特点。那么我们现在开发完成完成后如何部署到k8s集群中,今天来研究一番。
首先就是将昨天已打包好的镜像推送至镜像仓库,这里可以是私有的镜像仓库,也可以是公共的比如dockerhub官方镜像仓库、BAT的镜像仓库等,这样的话,k8s就可以从仓库拉取镜像进行部署了。如何部署镜像仓库呢,这个后面专门分享一篇如何搭建自己的私有镜像仓库。
1、将vue和go前后端项目构建为就像,推送到了公开仓库,名称为cilliandevops/cops-fe和cilliandevops/cops
2、在集群中部署前后端项目的deployment和service,这里给大家分享下k8s中的基础资源知识:
- Pod:K8S调度的最小运算单元,包含一个或多个容器。
- Deployment:Pod和ReplicaSet的抽象,用于部署和维护Pod 。
- Service:为一组Pod提供网络连接,分配Cluster IP和端口等。
所以想要部署访问就得创建对应项目的deployment和service。因为pod是集群内,集群内的ip外部无法直接访问,所以service为pod提供了一个稳定的网络访问入口。
那我们先建立deployment和service
这里需要解释下,这个port和targetport的区别,一个就是你暴露的端口,一个就是代码里设置的端口也就是pod端口。
部署:
因为这里dockerhub仓库拉取镜像,又是网络的原因,唉。所以咱们设置下docker镜像加速:
编辑/etc/docker下的daemon.json文件,添加:
或者直接添加镜像源即可:
看下pod日志:
可以看到已经在运行了,那么这个sevice地址也已经看到了,可是这个地址只能在集群内访问,我们想要在外部访问是不行的。
那么我们这里要改一下service的配置,加一个nodeport,这个配置就是service映射到节点上的端口,这样就可以通过节点ip地址加指定的端口,从集群外访问这个service了。
改一下cops-service配置:
我们访问一下看看:
这么一看,咱们后端是成功部署到k8s了,那么前端项目也是同样流程了。
访问前端页面:
到此,就完成了将前后端项目容器化并部署到K8s的项目了。总体来说,其实就是把docker给管理起来,在Kubernetes上部署前后端应用可以带来资源统一管理、服务发现、高可用、灰度发布等诸多的优势,这也是越来越多的企业选择在Kubernetes上部署前后端应用的重要理由。但是部署每次都要这么手动的话,那就还是比较麻烦了,所以得考虑如何自动化部署,进行快速更新迭代,这部分内容就是后面我们要研究的。今天就到这了,感兴趣的朋友记得点赞关注呀!
领取专属 10元无门槛券
私享最新 技术干货