Kubernetes CKA課程筆記 71

Kubernetes REST API — 有哪些API該上哪找?進階使用方式(Java直接呼叫)?

ZONGRU Li
Nov 28, 2021

承上一篇筆記

我們如何知道有哪些REST API可供我們使用:

實際URL哪來的?

舉例我們有以下各種不同需求要透過REST API實現:

  1. 羅列目前現有的Pods,Services,NameSpaces等等
  2. 讀取現在的Deployment,Volume等等
  3. 建立Deployment,Service,Role等等
  4. 更新Volume,Service,ServiceAccount等等
  5. 讀取特定Podlogs

以上的API基本都有,而且不用背,都在K8s doc裡:

這邊要再次提醒注意,不同的K8s元件隸屬於不同的API Groups

例如Pod,Service都屬於”core”這個API Groups(對uri開頭:/api/v1)

例如deployment都屬於”apps”這個API Groups(對uri開頭:/apis/apps/v1)

但是不用背,就在如下頁面上:

link

也可以從Kubernetes的官網搜尋找:

link

一樣會到達以下頁面:

link

如前篇我們有定義Role權限,可以查找Deployment元件:

所以嘗試透過REST API實現,所以找到:

實際curl如下:

成功!

接著嘗試讀取特定Deployment:

成功!!,後面資料很長

接著如果要建立Service,則可能需要傳入一些參數

並改走其他的http Method:

接著嘗試使用沒有權限的API,比如列出SECRETS元件

諸如以上範例,其實就可以寫成Script執行想做的動作了!

進階用法 — 使用client端程式的library來執行:

比如直接用PythonJava來直接呼叫K8s API

針對各種不同的語言,K8s其實有提供不同的client library供其使用

也就是有K8s官方支持的library來提供比較普遍的語言使用(如:Python,Java,Go..etc)

其他沒那麼大眾的語言也有非官方的,就要另外找找!

相關官方doc如下

link

例如Java的使用範例如下:

link

往下滑有整個寫法:

link

連結進去可以看到對應的github,由關鍵字查找也能找到maven repo:

參考課程(reference)

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

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

No responses yet