您好,登錄后才能下訂單哦!
作為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:
這個HTTP請求的格式在Kubernetes官網能查到。
那么kubectl命令怎么知道應該把請求發送到哪個API server呢?
運行命令kubectl config view, 顯示內容里的server:后面的地址就是API server的url。
kubectl config view顯示的內容來自配置文件: ~/.kube/config:
其實Kubernetes的kubectl工作原理和CloudFoundry的命令行工具cf一樣。
設置操作系統的環境變量CF_TRACE = true
然后執行任意的cf 命令,能看到這些命令實際上也是發送一個HTTP請求到SAP Cloud Platform的某個endpoint上。
例子:cf logs connectvity-demo-approuter --recent
然后就能看到為了完成這個命令所發送的HTTP請求和響應的負載。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。