K8S體系裡面如何更好的使用swagger來生成文件?
什麼是swagger文件
swagger文件是方便前後端開發人員聯合除錯的文件工具, 網上有大量的springboot和swagger進行結合的相關文章。大部分都是通過springfox的swagger元件,來把swagger和應用程式進行結合,在程式啟動的時候可以通過特定的服務ip和服務埠訪問swagger文件
k8s裡面如何使用swagger文件
在k8s裡面如何更好的使用swagger文件呢,我們從虛擬機器部署遷移到k8s體系的過程中,遇到了這個問題。那麼如何在k8s體系裡面優雅的使用swagger文件呢, 在網上查了一部分資料未果之後,決定根據自身的情況來設計方案。
我們主要從以下幾個方面進行了考慮
- k8s體系裡面,每個app的應用的ip地址都是虛擬出來的, k8s外部不能直接訪問到,需要通過統一的入口進行訪問
- 生成的應用包的大小希望儘量小,以前springfox的ui的依賴,會每個專案都引入相關的ui前端程式碼, 其實這一部分程式碼都是可以抽出來的,減少應用jar的大小
- 統一訪問的規則,讓大家都可以通過良好的規則來減少記憶的成本,需要一個統一的訪問入口
如何落地
- 所有應用的swagger都由一個統一的入口進行訪問, 我們可以下載swagger-ui專案,然後前面掛一個nginx,然後在引數裡面指定不同的swagger.json檔案
- 專案的swagger.json由專案打包的時候進行生成,比如java專案,可以利用一些maven的plugin外掛進行生成swagger.json檔案,然後傳到一個固定的地方,swagger-ui通過到這個固定地方來讀取對應專案swagger.json檔案
- 然後訪問的時候,全部通過k8s的ingress暴露出來的服務進行訪問,這樣k8s裡面的服務就是一個整體,對應一個swagger.json檔案
對比之前的方式的優勢
- 我們通過這樣的方式落地之後,jar包的大小比之前使用springfox小了8m
- 應用的啟動時間,對於有50個左右的介面,啟動時間也有所減少
- 測試和開發人員,不需要記錄每個應用所部署機器的具體ip,方便了除錯的速度
如果大家有興趣一起學習微服務和DevOps, 可以加入群632109190或者892684010進行討論和學習
相關文章
- 如何使用Swagger-UI線上生成漂亮的介面文件SwaggerUI
- Gin 生成 Swagger 文件Swagger
- Go語言使用swagger生成介面文件GoSwagger
- Gin 如何動態生成模型 swagger 文件模型Swagger
- 如何使用swagger2輕鬆生成線上介面文件Swagger
- 使用go-swagger為golang API自動生成swagger文件SwaggerGolangAPI
- Laravel Swagger 生成 API 文件LaravelSwaggerAPI
- Lumen 微服務生成 Swagger 文件微服務Swagger
- 自動生成為swagger文件的出入參示例Swagger
- Laravel 8 開發中使用 swagger-php 3 生成文件LaravelSwaggerPHP
- NET 5.0 Swagger API 自動生成MarkDown文件SwaggerAPI
- 優於 swagger 的 java markdown 文件自動生成框架-01-入門使用SwaggerJava框架
- ASP.NET Web API 中使用 swagger 來管理 API 文件ASP.NETWebAPISwagger
- spring-boot-route(五)整合Swagger生成介面文件SpringbootSwagger
- 資料庫界的Swagger:一鍵生成資料庫文件!資料庫Swagger
- 懶得寫文件,swagger文件匯出來不香嗎Swagger
- SpringBoot2 整合 Swagger2文件 使用BootstrapUI頁面Spring BootSwaggerUI
- Spring boot 之自動生成API文件swagger2Spring BootAPISwagger
- Spring Boot如何生成swagger.json?Spring BootSwaggerJSON
- Swagger API 文件SwaggerAPI
- Spring Boot 2.x基礎教程:Swagger靜態文件的生成Spring BootSwagger
- springMVC整合swagger2來輸出介面文件SpringMVCSwagger
- Swagger 文件工具 設計、構建、文件化和使用您的 RESTful APISwaggerRESTAPI
- 使用apidoc文件神器,快速生成api文件API
- 如何更好的回答面試問題面試
- 在Web API程式中使用Swagger做介面文件WebAPISwagger
- Springboot系列(七) 整合介面文件swagger,使用,測試Spring BootSwagger
- 使用 swagger-ui 視覺化 Kubernetes API 文件SwaggerUI視覺化API
- 如何更好的使用module vuex?Vue
- 實用!一鍵生成資料庫文件,堪稱資料庫界的Swagger資料庫Swagger
- 【Python】生成html文件-使用dominatePythonHTML
- Spring Cloud Zuul中使用Swagger彙總API介面文件SpringCloudZuulSwaggerAPI
- JeecgBoot 如何在生產環境關閉 Swagger 文件bootSwagger
- Swagger的使用Swagger
- 如何在Docker容器中的Linux系統(Ubuntu + Centos Linux)裡面使用systemctlDockerLinuxUbuntuCentOS
- Spring Cloud Gateway 聚合swagger文件SpringCloudGatewaySwagger
- 如何更好地使用 telescope
- Laravel API 文件生成器生成指定的 API 文件LaravelAPI