W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Kubernetes 控制面 的核心是 API 服務(wù)器。 API 服務(wù)器負責提供 HTTP API,以供用戶、集群中的不同部分和集群外部組件相互通信。
Kubernetes API 使你可以查詢和操縱 Kubernetes API 中對象(例如:Pod、Namespace、ConfigMap 和 Event)的狀態(tài)。
大部分操作都可以通過 kubectl 命令行接口或 類似 kubeadm 這類命令行工具來執(zhí)行, 這些工具在背后也是調(diào)用 API。不過,你也可以使用 REST 調(diào)用來訪問這些 API。
如果你正在編寫程序來訪問 Kubernetes API,可以考慮使用 客戶端庫之一。
完整的 API 細節(jié)是用 OpenAPI 來表述的。
Kubernetes API 服務(wù)器通過 ?/openapi/v2
? 端點提供聚合的 OpenAPI v2 規(guī)范。 你可以按照下表所給的請求頭部,指定響應(yīng)的格式:
頭部 | 可選值 | 說明 |
---|---|---|
Accept-Encoding
|
gzip
|
不指定此頭部也是可以的 |
Accept
|
application/com.github.proto-openapi.spec.v2@v1.0+protobuf
|
主要用于集群內(nèi)部 |
application/json
|
默認值 | |
*
|
提供application/json
|
OpenAPI v2 查詢請求的合法頭部值
Kubernetes 為 API 實現(xiàn)了一種基于 Protobuf 的序列化格式,主要用于集群內(nèi)部通信。 關(guān)于此格式的詳細信息,可參考 Kubernetes Protobuf 序列化 設(shè)計提案。每種模式對應(yīng)的接口描述語言(IDL)位于定義 API 對象的 Go 包中。
FEATURE STATE: Kubernetes v1.23 [alpha]
Kubernetes v1.23 提供將其 API 以 OpenAPI v3 形式發(fā)布的初始支持;這一功能特性處于 Alpha 狀態(tài),默認被禁用。 你可以通過為 kube-apiserver 組件啟用 ?OpenAPIV3
?特性門控來啟用此 Alpha 特性。
特性被啟用時,Kubernetes API 服務(wù)器會在端點 ?/openapi/v3/apis/<group>/<version>
? 提供按 Kubernetes 組版本聚合的 OpenAPI v3 規(guī)范。 請參閱下表了解可接受的請求頭部。
頭部 | 可選值 | 說明 |
---|---|---|
Accept-Encoding
|
gzip
|
不提供此頭部也是可接受的 |
Accept
|
application/com.github.proto-openapi.spec.v3@v1.0+protobuf
|
主要用于集群內(nèi)部使用 |
application/json
|
默認 | |
*
|
以 application/json 形式返回 |
發(fā)現(xiàn)端點 ?/openapi/v3
? 被提供用來查看可用的所有組、版本列表。 此列表僅返回 JSON。
任何成功的系統(tǒng)都要隨著新的使用案例的出現(xiàn)和現(xiàn)有案例的變化來成長和變化。 為此,Kubernetes 的功能特性設(shè)計考慮了讓 Kubernetes API 能夠持續(xù)變更和成長的因素。 Kubernetes 項目的目標是 不要 引發(fā)現(xiàn)有客戶端的兼容性問題,并在一定的時期內(nèi) 維持這種兼容性,以便其他項目有機會作出適應(yīng)性變更。
一般而言,新的 API 資源和新的資源字段可以被頻繁地添加進來。 刪除資源或者字段則要遵從 API 廢棄策略。
Kubernetes 對維護達到正式發(fā)布(GA)階段的官方 API 的兼容性有著很強的承諾, 通常這一 API 版本為 v1。此外,Kubernetes 在可能的時候還會保持 Beta API 版本的兼容性:如果你采用了 Beta API,你可以繼續(xù)在集群上使用該 API, 即使該功能特性已進入穩(wěn)定期也是如此。
Note:
盡管 Kubernetes 也努力為 Alpha API 版本維護兼容性,在有些場合兼容性是無法做到的。 如果你使用了任何 Alpha API 版本,需要在升級集群時查看 Kubernetes 發(fā)布說明, 以防 API 的確發(fā)生變更。
有兩種途徑來擴展 Kubernetes API:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: