Kubernetes API server工作原理
作為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//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的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的Kubernetes API server工作原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 澳大利亚一飞机掉入印度洋:全员坠海 未有
- 下一篇: 轻薄度被折叠屏手机超越后 直板机的天下要