您好,登錄后才能下訂單哦!
作為Kubernetes的使用者,每天用得最多的命令就是kubectl XXX了。
kubectl其實(shí)就是一個(gè)控制臺(tái),主要提供的功能:
1. 提供Kubernetes集群管理的REST API接口,包括認(rèn)證授權(quán)、數(shù)據(jù)校驗(yàn)以及集群狀態(tài)變更;
2. 提供其他模塊之間的數(shù)據(jù)交互和通信的樞紐(其他模塊通過API Server查詢或修改數(shù)據(jù),只有API Server才直接操作etcd)
也就是說,我們?cè)诮K端里輸入的每個(gè)kubectl命令,實(shí)際上都是一個(gè)發(fā)往Kubernetes API server的Restful API調(diào)用。
我們可以做個(gè)實(shí)驗(yàn):
kubectl get secret -v=9, 通過-v=9設(shè)置最高級(jí)別的trace:
從輸出觀察到為了取回所有的secret而進(jìn)行的API server的調(diào)用url: https://xxxx/api/v1/namespaces/ <own namespace>/secrets?limit=500:
這個(gè)HTTP請(qǐng)求的格式在Kubernetes官網(wǎng)能查到。
那么kubectl命令怎么知道應(yīng)該把請(qǐng)求發(fā)送到哪個(gè)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ā)送一個(gè)HTTP請(qǐng)求到SAP Cloud Platform的某個(gè)endpoint上。
例子:cf logs connectvity-demo-approuter --recent
然后就能看到為了完成這個(gè)命令所發(fā)送的HTTP請(qǐng)求和響應(yīng)的負(fù)載。
要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。