K8S基本操作-38-K8S API
K8S API
如果我們需要為 K8S 設置自訂介面,更加自動化,甚至將 K8S 由大語言模型管理,這時候存取 API 就是個需要的功能了。
常見的 API
我們這邊以不一定真實存在的 URL: https://kube-master:6443 為例子
# 檢查版本
https://kube-master:6443/version
# 查看多個 Pod
https://kube-master:6443/api/v1/pods
# 檢查指定的 Pod
https://kube-master:6443/api/v1/namespaces/{namespace}/pods/{Pod名稱}
# 查看 Deployment
https://kube-master:6443/apis/apps/v1/namespaces/{namespace}/deployments/{name}
可以參考以下網址:
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/
比較好的實踐方式
比起手動發出 HTTPS requests 到 K8S API ,建議使用有進行維護的各種程式語言的函數庫,來進行作業。
這邊有著K8S官方幾種語言的 Client 可以使用:
https://github.com/kubernetes-client
如何用 CURL 進行呼叫
事實上,使用時需要再 CURL 加入你個人登入用的 .crt 與 .key:
curl http://localhost:6443 –k --key admin.key --cert admin.crt --cacert ca.crt
假如你已經配置好 kubectl proxy,也可以省去驗證步驟:
# 檢查 Kubectl Proxy 使用哪個 Port
kubectl proxy
輸出:
Starting to serve on 127.0.0.1:8001
上述這代表我們能在 8001 port 直接使用我們配置給 Kubectl 的憑證與鑰匙呼叫 API:
curl http://localhost:8001 -k