Kubernetes API server工作原理

i042416發表於2018-11-20

作為Kubernetes的使用者,每天用得最多的命令就是kubectl XXX了。

kubectl其實就是一個控制檯,主要提供的功能:

1. 提供Kubernetes叢集管理的REST API介面,包括認證授權、資料校驗以及叢集狀態變更;

2. 提供其他模組之間的資料互動和通訊的樞紐(其他模組通過API Server查詢或修改資料,只有API Server才直接操作etcd)

也就是說,我們在終端裡輸入的每個kubectl命令,實際上都是一個發往Kubernetes API server的Restful API呼叫。

我們可以做個實驗:

kubectl get secret -v=9, 通過-v=9設定最高階別的trace:

從輸出觀察到為了取回所有的secret而進行的API server的呼叫url: https://xxxx/api/v1/namespaces/ <own namespace>/secrets?limit=500:

Kubernetes API server工作原理

這個HTTP請求的格式在Kubernetes官網能查到。

Kubernetes API server工作原理

那麼kubectl命令怎麼知道應該把請求傳送到哪個API server呢?

執行命令kubectl config view, 顯示內容裡的server:後面的地址就是API server的url。

Kubernetes API server工作原理

kubectl config view顯示的內容來自配置檔案: ~/.kube/config:

其實Kubernetes的kubectl工作原理和CloudFoundry的命令列工具cf一樣。

設定作業系統的環境變數CF_TRACE = true

Kubernetes API server工作原理

然後執行任意的cf 命令,能看到這些命令實際上也是傳送一個HTTP請求到SAP Cloud Platform的某個endpoint上。

例子:cf logs connectvity-demo-approuter --recent

然後就能看到為了完成這個命令所傳送的HTTP請求和響應的負載。

Kubernetes API server工作原理

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

Kubernetes API server工作原理


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2220872/,如需轉載,請註明出處,否則將追究法律責任。

相關文章