使用 swagger-ui 視覺化 Kubernetes API 文件

Python程式設計時光發表於2021-11-03

在工作中,你可能需要基於 Kubernetes 提供的 API 進行開發,比如開發適合自己的控制檯,Kubernetes 官方提供的 API 文件,有兩個問題:

  1. 非常的不直觀,這個問題其實還好,自己克服一下也不是大問題
  2. 只有 K8S api-server 的介面,這個就難辦了,假如有新的 CRD 資源,比如 kubevirt ,又要去找 kubevirt 的 api 文件,關鍵是找不著

今天明哥給大家介紹一個工具,可以幫你解決這個問題。

這個工具叫 swagger-ui,可以把 k8s 暴露的 http 介面文件以 UI 介面呈現給你,你甚至還可以在上面進行除錯,生成 curl 的請求命令。

1. 如何部署 swagger-ui

開啟兩個 ssh 連線到你的 K8S 叢集中。

進入第一個視窗,執行如下命令建立一個反向代理

kubectl proxy --port=8080

進入第二個視窗,執行如下命令建立獲取 k8s的 api 文件資訊,輸出到一個 k8s-swagger.json 檔案中

curl localhost:8080/openapi/v2 > k8s-swagger.json

獲取到後,第一個視窗就可以關閉了。

然後任選一個視窗,執行如下命令執行一個容器

docker run \
    --rm \
    -d \
    -p 80:8080 \
    -e SWAGGER_JSON=/k8s-swagger.json \
    -v $(pwd)/k8s-swagger.json:/k8s-swagger.json \
    swaggerapi/swagger-ui

2. 使用 swagger-ui

此時,你在瀏覽器上輸入 http://ip 就可以看到一個經過視覺化的 api 文件介面,其中包括安裝在叢集上的所有自定義資源的模型和路徑!

裡面的 api 非常多,你用得上的,用不上的,這裡都有。
不僅有 api-server 的 API ,​其他所有你另外安裝的 CRD 資源也都有。

比如我自己安裝的 VirtualMachineInstance 資源,根據關鍵字,立馬就找到 KubeVirt 建立虛擬機器的 API

點選上面的 Try it out 可以修改請求體的引數,請生成一個 curl 命令,方便你進行除錯。

絮叨一下

我在 SegmentFault 上寫過很多的 Python 相關文章,其中包括 Python 實用工具,Python 高效技巧,PyCharm 使用技巧,很高興得到了很多知乎朋友的認可和支援。

在他們的鼓勵之下,我將過往文章分門別類整理成三本 PDF 電子書

PyCharm 中文指南

《PyCharm 中文指南》使用 300 多張 GIF 動態圖的形式,詳細講解了最貼合實際開發的 105個 PyCharm 高效使用技巧,內容通俗易懂,適合所有 Python 開發者。

線上體驗地址:https://pycharm.iswbm.com

Python 黑魔法指南

《Python黑魔法指南》目前迎來了 v3.0 的版本,囊集了 100 多個開發小技巧,非常適合在閒時進行碎片閱讀。

線上體驗地址:https://magic.iswbm.com

Python 中文指南

學 Python 最好的學習資料永遠是 Python 官方文件,可惜現在的官方文件大都是英文,雖然有中文的翻譯版了,但是進度實在堪憂。為了照顧英文不好的同學,我自己寫了一份 面向零基礎的朋友 的線上 Python 文件 -- 《Python中文指南》

線上體驗地址:https://python.iswbm.com

有幫助的話,記得幫 點個贊喲~

相關文章