028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

小公司的应用服务部署历程

先声明一下:我所在的公司是一个小团队,做物联网相关的,前后端、硬件、测试加起来也就五六十个人左右;本人的岗位是Java开发(兼DBA、运维);我进公司时整个项目的部署架构为 简单jar包部署微服务集群形式;去年公司将部分服务使用docker进行部署;因为现在服务稍微有点多导致容器管理起来也比较难,再加上我们公司没有专门的运维人员,所以现在打算使用云商的k8s来对容器统一进行管理。因为运维相关的事情我一直在负责,上周领导让我画一下用k8s部署接口调用链路图,所以我便顺便总结了一下,以下大部分内容为我自己理解,如果有什么不对的地方还请大家多多指出。(文中画图使用软件:BoardMix)

为图木舒克等地区用户提供了全套网页设计制作服务,及图木舒克网站建设行业解决方案。主营业务为成都网站设计、成都网站制作、图木舒克网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

一.常见服务部署架构

1.传统服务器jar运行部署(公司之前使用的部署方式)

服务部署架构图

优点

缺点

2.docker 容器化部署(公司目前使用的部署方式)

服务部署架构图

优点

缺点

3.k8s容器化部署(现在公司需要升级的部署方式)

服务部署架构图

名词解释

优点

缺点

综上所述:咱们使用云商搭建好的k8s,所以说目前对我们来说没有什么缺点 -- 嘿嘿~。

二.k8s部署、服务调用链路相关

1.简介

就不介绍了,有兴趣的可以看一下官方文档:https://kubernetes.io/zh-cn/docs/concepts/overview/

2.基本概念

Pod里是容器,PodReplicaSet管理,ReplicaSet控制pod的数量;

ReplicaSetDeployment管理,Deployment控制pod应用的升级、回滚,当然也能控制pod的数量。

Service提供一个统一固定入口,负责将前端请求转发给Pod

3.调用链路

1.目前公司前后端服务调用链路

前端

1、 前端访问域名;

2、 域名DNS解析到部署前端项目的服务器(集群:则解析到集群对应的SLB负载均衡公网IP上—SLB负责具体将请求打在某一台服务器上);

3、 被请求的服务器用Nginx通过域名加目录的形式将请求转发到不同的前端项目。

后端接口

1、 访问api接口

2、 域名DNS解析到部署网关服务器(集群:则解析到集群对应的SLB负载均衡公网IP上—SLB负责具体将请求打在某一台服务器上);

3、 被请求的服务器用Nginx将请求转发到当前服务器的Gateway网关

4、 网关对请求接口进行鉴权、匹配路由等操作。

5、 通过Nacos自带负载均衡Ribbon负载到具体某一个应用服务

6、 返回结果请求结束。

2.使用k8s部署后,前后端调用链路

前端

1、SLB监听80和443端口。

2、请求进来进行域名DNS解析,解析到集群暴露出来的公网SLB的IP上。

3、经过nginx Ingress 转发匹配请求路径,将请求转发到不同的Server(一个Server对应一个Deployment,对应一个项目)上。

4、Server会通过k8s自身的负载均衡算法将请求负载到某一个Pod上面(这一步k8s内部有一个负载均衡选择具体服务的哪一个Pod)

5、访问到具体的Pod,返回结果。

后台接口

1、 SLB监听80和443端口。

2、 请求进来进行域名DNS解析,解析到集群暴露出来的公网SLB的IP上。

3、 经过nginx Ingress 转发到对应的gateway网关Server上。

4、 Server会通过k8s自身的负载均衡算法将请求负载到某一个网关Pod上面。

5、 网关对请求接口进行鉴权、匹配路由等操作。

6、 通过Nacos自带负载均衡Ribbon负载到具体某一个应用服务

7、 返回结果请求结束。

4.阿里云流水线 + Kubernetes 镜像升级部署实践

K8s镜像部署

先进行镜像构建 如下两步操作并运行流水线
在k8s管理界面的[工作负载]-->[无状态]目录根据需要部署的环境切换命名空间,如:测试环境(namespace-dev)

创建对应的Deployment与pod

点击右上角“使用镜像创建”、对k8s编排掌握好的可以直接使用yaml创建,推荐使用镜像创建。

a.填写对应的应用服务信息
b.选择对应的镜像和版本(刚才创建的)

其他的不需要填、如果有提示不能为空的直接删掉就可以了

c.下一步直接点击创建、完成后出来到无状态目录下找到创建的Deployment,点击去--->容器组-->点进去--->日志(进行日志查看)
k8s镜像升级

回到流水线页面在构建镜像的基础上新建一个部署任务--Kubernetes镜像升级注意:命名空间、Deployment名称、容器名称不要填错。

这样就完成了k8s镜像的升级


本文名称:小公司的应用服务部署历程
当前链接:http://www.tsicrk.com/article/dscgeco.html

其他资讯

让你的专属顾问为你服务

0.7849s