作為Kubernetes的使用者,每天用得最多的命令就是kubectl XXX了。
kubectl其實(shí)就是一個控制臺,主要提供的功能:
1. 提供Kubernetes集群管理的REST API接口,包括認(rèn)證授權(quán)、數(shù)據(jù)校驗(yàn)以及集群狀態(tài)變更;
2. 提供其他模塊之間的數(shù)據(jù)交互和通信的樞紐(其他模塊通過API Server查詢或修改數(shù)據(jù),只有API Server才直接操作etcd)
也就是說,我們在終端里輸入的每個kubectl命令,實(shí)際上都是一個發(fā)往Kubernetes API server的Restful API調(diào)用。
我們可以做個實(shí)驗(yàn):
kubectl get secret -v=9, 通過-v=9設(shè)置最高級別的trace:
從輸出觀察到為了取回所有的secret而進(jìn)行的API server的調(diào)用url: https://xxxx/api/v1/namespaces/ <own namespace>/secrets?limit=500:
這個HTTP請求的格式在Kubernetes官網(wǎng)能查到。
那么kubectl命令怎么知道應(yīng)該把請求發(fā)送到哪個API server呢?
運(yùn)行命令kubectl config view, 顯示內(nèi)容里的server:后面的地址就是API server的url。
kubectl config view顯示的內(nèi)容來自配置文件: ~/.kube/config:
其實(shí)Kubernetes的kubectl工作原理和CloudFoundry的命令行工具cf一樣。
設(shè)置操作系統(tǒng)的環(huán)境變量CF_TRACE = true
然后執(zhí)行任意的cf 命令,能看到這些命令實(shí)際上也是發(fā)送一個HTTP請求到SAP Cloud Platform的某個endpoint上。
例子:cf logs connectvity-demo-approuter --recent
然后就能看到為了完成這個命令所發(fā)送的HTTP請求和響應(yīng)的負(fù)載。
要獲取更多Jerry的原創(chuàng)文章,請關(guān)注公眾號"汪子熙":
新聞名稱:KubernetesAPIserver工作原理-創(chuàng)新互聯(lián)
文章出自:http://chinadenli.net/article38/dcjgpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、軟件開發(fā)、網(wǎng)站營銷、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容