kubernetes實踐之十九:API概述
一:體系結構
二:說明
Kubernetes API是叢集系統中的重要組成部分,Kubernetes中各種資源(物件)的資料通過該API介面被提交到後端的持久化儲存(etcd)中,Kubernetes叢集中的各部件之間通過該API介面實現解耦合,同時Kubernetes叢集中一個重要且便捷的管理工具kubectl也是通過訪問該API介面實現其強大的管理功能的。Kubernetes API中的資源物件都擁有通用的後設資料,資源物件也可能存在巢狀現象,比如在一個Pod裡面巢狀多個Container。建立一個API物件是指通過API呼叫建立一條有意義的記錄,該記錄一旦被建立,Kubernetes將確保對應的資源物件會被自動建立並託管維護。
在Kubernetes系統中,大多數情況下,API定義和實現都符合標準的HTTP REST格式, 比如通過標準的HTTP動詞(POST、PUT、GET、DELETE)來完成對相關資源物件的查詢、建立、修改、刪除等操作。但同時Kubernetes 也為某些非標準的REST行為實現了附加的API介面,例如Watch某個資源的變化、進入容器執行某個操作等。另外,某些API介面可能違背嚴格的REST模式,因為介面不是返回單一的JSON物件,而是返回其他型別的資料,比如JSON物件流(Stream)或非結構化的文字日誌資料等。
Kubernetes開發人員認為,任何成功的系統都會經歷一個不斷成長和不斷適應各種變更的過程。因此,他們期望Kubernetes API是不斷變更和增長的。同時,他們在設計和開發時,有意識地相容了已存在的客戶需求。通常,新的API資源(Resource)和新的資源域不希望被頻繁地加入系統。資源或域的刪除需要一個嚴格的稽核流程。
二:說明
Kubernetes API是叢集系統中的重要組成部分,Kubernetes中各種資源(物件)的資料通過該API介面被提交到後端的持久化儲存(etcd)中,Kubernetes叢集中的各部件之間通過該API介面實現解耦合,同時Kubernetes叢集中一個重要且便捷的管理工具kubectl也是通過訪問該API介面實現其強大的管理功能的。Kubernetes API中的資源物件都擁有通用的後設資料,資源物件也可能存在巢狀現象,比如在一個Pod裡面巢狀多個Container。建立一個API物件是指通過API呼叫建立一條有意義的記錄,該記錄一旦被建立,Kubernetes將確保對應的資源物件會被自動建立並託管維護。
在Kubernetes系統中,大多數情況下,API定義和實現都符合標準的HTTP REST格式, 比如通過標準的HTTP動詞(POST、PUT、GET、DELETE)來完成對相關資源物件的查詢、建立、修改、刪除等操作。但同時Kubernetes 也為某些非標準的REST行為實現了附加的API介面,例如Watch某個資源的變化、進入容器執行某個操作等。另外,某些API介面可能違背嚴格的REST模式,因為介面不是返回單一的JSON物件,而是返回其他型別的資料,比如JSON物件流(Stream)或非結構化的文字日誌資料等。
Kubernetes開發人員認為,任何成功的系統都會經歷一個不斷成長和不斷適應各種變更的過程。因此,他們期望Kubernetes API是不斷變更和增長的。同時,他們在設計和開發時,有意識地相容了已存在的客戶需求。通常,新的API資源(Resource)和新的資源域不希望被頻繁地加入系統。資源或域的刪除需要一個嚴格的稽核流程。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2153108/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- kubernetes實踐之五十九:NetworkPolicy
- kubernetes實踐之四十九:Scheduler原理分析
- kubernetes實踐之三十九:Pod初始化容器之Init ContainerAI
- kubernetes實踐之四十五:API Server原理分析APIServer
- kubernetes實踐之二十九:Kubernetes+Harbor+Gitlab+Jenkins+Maven DevOpsGitlabJenkinsMavendev
- kubernetes實踐之六十九:istio-1.0.0部署和試用
- kubernetes實踐之七:安全機制API Server認證之Service Account TokenAPIServer
- kubernetes實踐之十一:EFK
- kubernetes實踐之六十:Cabin-Manage Kubernetes
- kubernetes實踐之五十七:PodPreset
- kubernetes實踐之五十八:CronJob
- kubernetes實踐之五十二:Helm
- kubernetes實踐之十七:架構架構
- kubernetes實踐之八:TLS bootstrappingTLSbootAPP
- kubernetes實踐之十:Kubernetes-dashboard+Heapster+InfluxDB+GrafanaUXGrafana
- kubernetes實踐之四十二:StatefulSet
- kubernetes實踐之六十四:CoreDNSDNS
- kubernetes實踐之五十六:雲原生
- kubernetes實踐之五:網路模型模型
- kubernetes實踐之十二:部署Traefik Ingress
- kubernetes實踐之九:kube-dnsDNS
- GitOps實踐之kubernetes安裝argocdGitGo
- kubernetes實踐之五十五:kubectl之配置kubeconfig
- kubernetes實踐之十四:Service Account與Secret
- kubernetes實踐之四十七:ResourceQuota ControllerController
- kubernetes實踐之六十五:Service Mesh
- kubernetes實踐之六十二:Secret 使用
- kubernetes實踐之六十三:使用技巧
- kubernetes生產實踐之redis-clusterRedis
- kubernetes實踐之七十二:Istio之策略與遙測
- kubernetes實踐之七十三:Istio之配置請求路由路由
- kubernetes實踐之七十:Istio之流量管理(上)
- kubernetes實踐之十六:RBAC 角色訪問控制
- kubernetes實踐之四十四:Ingress詳解
- kubernetes實踐之四十三: Service詳解
- kubernetes實踐之五:Node節點安裝
- kubernetes實踐之五十四:垃圾回收機制
- kubernetes實踐之六十七:Istio介紹