美文网首页
K8S体系里面如何更好的使用swagger来生成文档?

K8S体系里面如何更好的使用swagger来生成文档?

作者: LOC_Thomas | 来源:发表于2018-10-29 11:03 被阅读0次

什么是swagger文档

swagger文档是方便前后端开发人员联合调试的文档工具, 网上有大量的springboot和swagger进行结合的相关文章。大部分都是通过springfox的swagger组件,来把swagger和应用程序进行结合,在程序启动的时候可以通过特定的服务ip和服务端口访问swagger文档

k8s里面如何使用swagger文档

在k8s里面如何更好的使用swagger文档呢,我们从虚拟机部署迁移到k8s体系的过程中,遇到了这个问题。那么如何在k8s体系里面优雅的使用swagger文档呢, 在网上查了一部分资料未果之后,决定根据自身的情况来设计方案。

我们主要从以下几个方面进行了考虑

  1. k8s体系里面,每个app的应用的ip地址都是虚拟出来的, k8s外部不能直接访问到,需要通过统一的入口进行访问
  2. 生成的应用包的大小希望尽量小,以前springfox的ui的依赖,会每个项目都引入相关的ui前端代码, 其实这一部分代码都是可以抽出来的,减少应用jar的大小
  3. 统一访问的规则,让大家都可以通过良好的规则来减少记忆的成本,需要一个统一的访问入口

如何落地

  1. 所有应用的swagger都由一个统一的入口进行访问, 我们可以下载swagger-ui项目,然后前面挂一个nginx,然后在参数里面指定不同的swagger.json文件
  2. 项目的swagger.json由项目打包的时候进行生成,比如java项目,可以利用一些maven的plugin插件进行生成swagger.json文件,然后传到一个固定的地方,swagger-ui通过到这个固定地方来读取对应项目swagger.json文件
  3. 然后访问的时候,全部通过k8s的ingress暴露出来的服务进行访问,这样k8s里面的服务就是一个整体,对应一个swagger.json文件

对比之前的方式的优势

  1. 我们通过这样的方式落地之后,jar包的大小比之前使用springfox小了8m
  2. 应用的启动时间,对于有50个左右的接口,启动时间也有所减少
  3. 测试和开发人员,不需要记录每个应用所部署机器的具体ip,方便了调试的速度

如果大家有兴趣一起学习微服务和DevOps, 可以加入群632109190或者892684010进行讨论和学习

相关文章

网友评论

      本文标题:K8S体系里面如何更好的使用swagger来生成文档?

      本文链接:https://www.haomeiwen.com/subject/riavtqtx.html