Kubernetes CKA課程筆記 69

Kubernetes REST API — with kubectl proxy

ZONGRU Li
Nov 28, 2021

考量到K8s已經正常維運情況下

K8s管理者或沒有kubectl工具的開發者需要查詢一些K8s元件狀態

並可能是要能夠寫成腳本(沒有kubectl工具)來執行的狀況:

這時候如圖示可以透過API Server本身的REST API來提供資源的請求

這時候簡單作法就是透過kubectlproxy來進行REST API的請求

透過kubetcl proxy來進行REST API請求:

前面學過要執行命令到K8s Cluster,有幾個先決條件:

  1. 首先我們要知道K8s Cluster的位置(=Endpoint of API Server)
  2. 授權的憑證

(以上我們在前面有透過kubectl實現過(筆記40~44篇))

這邊準備改以REST API實現,首先我們透過指令確認Endpoint位置,執行:

kubectl config view

憑證等等內容都簡化了

如上圖所示,kubectl背後已經帶有1.位置,2.憑證等等資訊

但是接下來我們打算透過REST用以下方式來獲取如同kubectl執行得到資訊:

  1. curl
  2. wget
  3. 直接透過瀏覽器瀏覽

而能夠實現上述的其中一種方式就是透過kubectl proxy:

以下就是透過kubectl指令建立kubectl proxy,執行:

kubectl proxy --port=8080 &

ctrl+c跳開就可以開始curl了

最基本的REST位置如下,執行:

curl http://localhost:8080/api

看起來可以查詢有哪些API的規格,執行:

curl http://localhost:8080/api/v1

查詢default nameSpace下的Services,執行:

curl http://localhost:8080/api/v1/namespaces/default/services

其他尚有許多可以執行的查詢curl可以嘗試

這都是經由剛剛建立的kubectl proxy實現的

並且實際上就是帶著kubectl本身定義的Endpoint憑證來執行

當然不需要的時候,就應該要把這個kubectl proxy運行程序移除:

確定移除kubectl proxy

當再次執行curl時:

就沒有proxy可供查詢了!

參考課程(reference)

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet