首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

k8s全栈部署篇

截止昨天已经对前端和后端应用进行容器化部署,并顺利实现前后端交互。那么如果像此类前后端项目越来越多的时候,不好管理该怎么办,相信大家已经知道了,就是利用容器编排平台,目前主流的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上部署前后端应用的重要理由。但是部署每次都要这么手动的话,那就还是比较麻烦了,所以得考虑如何自动化部署,进行快速更新迭代,这部分内容就是后面我们要研究的。今天就到这了,感兴趣的朋友记得点赞关注呀!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230415A0801M00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券