k8s的api-server元件負責提供restful api訪問端點, 並且將資料持久化到etcd server中. 那麼k8s是如何組織它的restful api的?
一, namespaced resources
所謂的namespaced resources,就是這個resource是從屬於某個namespace的, 也就是說它不是cluster-scoped的資源. 比如pod, deployment, service都屬於namespaced resource. 那麼我們看一下如何請求乙個namespaced resources.
可以看出, 該restful api的組織形式是:
apiapi版本
namespaces
所屬的namespace
資源種類
所請求的資源名稱
apiv1
namespaces
default
pods
test-pod
這裡api version如果是v1的話,表示這是乙個很穩定的版本了, 以後不會有大的修改,並且當前版本所支援的所有特性以後都會相容. 而如果版本號是v1alpha1, v1beta1之類的,則不保證其穩定性.
二, non-namespaced resources
這裡可以觀察到它clusterrole與pod不同, apis表示這是乙個非核心api. rbac.authorization.k8s.io指代的是api-group, 另外它沒有namespaces欄位, 其他與namespaced resources類似.不再贅述.
三, non-resource url
這類資源和pod, clusterrole都不同. 例如
這就是用來確認etcd服務是不是健康的.它不屬於任何namespace,也不屬於任何api版本.
總結, k8s的rest api的設計結構為:
[api/apis] / api-group / api-version / namespaces / namespace-name / resource-kind / resource-name
apis / rbac.authorization.k8s.io / v1 / namespaces / default / roles / test-role
K8S 2 k8s 集群搭建
kubeadm是官方社群推出的乙個用於快速部署kubernetes集群的工具。這個工具能通過兩條指令完成乙個kubernetes集群的部署 建立乙個 master 節點 kubeadm init 將乙個 node 節點加入到當前集群中 kubeadm join 在開始之前,部署 kubernetes...
K8s部署prometheus監控K8s細節
prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...
curl不通 k8s curl 訪問k8s api
chmod x jq mv jq usr bin 啟用非安全埠 kubectl proxy port 8080 檢視預設namespace pod列表 curl localhost 8080 api v1 namespaces default pods jq r items.metadata.nam...