Kubernetes API server工作原理
作為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ù)交互和通信的樞紐(其他模塊通過(guò)API Server查詢或修改數(shù)據(jù),只有API Server才直接操作etcd)
也就是說(shuō),我們?cè)诮K端里輸入的每個(gè)kubectl命令,實(shí)際上都是一個(gè)發(fā)往Kubernetes API server的Restful API調(diào)用。
我們可以做個(gè)實(shí)驗(yàn):
kubectl get secret -v=9, 通過(guò)-v=9設(shè)置最高級(jí)別的trace:
從輸出觀察到為了取回所有的secret而進(jìn)行的API server的調(diào)用url:https://xxxx/api/v1/namespaces//secrets?limit=500:
這個(gè)HTTP請(qǐng)求的格式在Kubernetes官網(wǎng)能查到。
那么kubectl命令怎么知道應(yīng)該把請(qǐng)求發(fā)送到哪個(gè)API server呢?
實(shí)行命令kubectl config view, 顯示內(nèi)容里的server:后面的地址就是API server的url。
kubectl config view顯示的內(nèi)容來(lá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)"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的Kubernetes API server工作原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 澳大利亚一飞机掉入印度洋:全员坠海 未有
- 下一篇: 轻薄度被折叠屏手机超越后 直板机的天下要