k8s restful API 結構分析

2021-09-11 22:06:08 字數 1429 閱讀 2558

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...