API 概觀
本節提供 Kubernetes API 的參考資訊。
REST API 是 Kubernetes 的基礎架構。元件之間的所有操作和通訊,以及外部使用者命令,都是由 API 伺服器處理的 REST API 呼叫。因此,Kubernetes 平台中的所有內容都被視為 API 物件,並在 API 中具有對應的條目。
Kubernetes API 參考文件列出了 Kubernetes v1.32 版本的 API。
如需一般背景資訊,請閱讀 Kubernetes API。控制 Kubernetes API 的存取 說明了客戶端如何向 Kubernetes API 伺服器進行身份驗證,以及如何授權其請求。
API 版本控制
JSON 和 Protobuf 序列化模式遵循相同的模式變更指南。以下說明涵蓋兩種格式。
API 版本控制和軟體版本控制間接相關。API 和發行版本控制提案 描述了 API 版本控制和軟體版本控制之間的關係。
不同的 API 版本表示不同的穩定性和支援級別。您可以在 API 變更文件 中找到有關每個級別標準的更多資訊。
以下是每個級別的摘要
Alpha
- 版本名稱包含 `alpha`(例如,`v1alpha1`)。
- 內建的 Alpha API 版本預設為停用,必須在 `kube-apiserver` 配置中明確啟用才能使用。
- 軟體可能包含錯誤。啟用功能可能會暴露錯誤。
- 對 Alpha API 的支援可能會在任何時候被移除,恕不另行通知。
- API 可能會在後續軟體版本中以不相容的方式變更,恕不另行通知。
- 由於錯誤風險增加且缺乏長期支援,建議該軟體僅在短暫的測試叢集中使用。
Beta
版本名稱包含 `beta`(例如,`v2beta3`)。
內建的 Beta API 版本預設為停用,必須在 `kube-apiserver` 配置中明確啟用才能使用(**除了** Kubernetes 1.22 之前引入的 API Beta 版本,預設為啟用)。
內建的 Beta API 版本從引入到棄用,最長生命週期為 9 個月或 3 個次要版本(以較長者為準),從棄用到移除,最長生命週期為 9 個月或 3 個次要版本(以較長者為準)。
該軟體經過充分測試。啟用功能被認為是安全的。
對功能的支援不會被移除,但細節可能會變更。
物件的模式和/或語義可能會在後續的 Beta 或穩定 API 版本中以不相容的方式變更。發生這種情況時,將提供遷移說明。適應後續的 Beta 或穩定 API 版本可能需要編輯或重新建立 API 物件,並且可能並非易事。對於依賴該功能的應用程式,遷移可能需要停機時間。
不建議在生產環境中使用該軟體。後續版本可能會引入不相容的變更。一旦 Beta API 版本被棄用且不再提供服務,則必須使用 Beta API 版本才能過渡到後續的 Beta 或穩定 API 版本。
注意
請嘗試 Beta 功能並提供回饋。在功能退出 Beta 後,進行更多變更可能不太實際。穩定
- 版本名稱為 `vX`,其中 `X` 是一個整數。
- 穩定的 API 版本在 Kubernetes 主要版本中的所有未來版本中仍然可用,並且目前沒有移除穩定 API 的 Kubernetes 主要版本修訂計畫。
API 群組
API 群組使擴展 Kubernetes API 更加容易。API 群組在 REST 路徑和序列化物件的 `apiVersion` 欄位中指定。
Kubernetes 中有多個 API 群組
- *核心*(也稱為*舊版*)群組位於 REST 路徑 `/api/v1`。核心群組未在 `apiVersion` 欄位中指定,例如,`apiVersion: v1`。
- 具名群組位於 REST 路徑 `/apis/$GROUP_NAME/$VERSION`,並使用 `apiVersion: $GROUP_NAME/$VERSION`(例如,`apiVersion: batch/v1`)。您可以在 Kubernetes API 參考文件 中找到支援的 API 群組完整清單。
啟用或停用 API 群組
某些資源和 API 群組預設為啟用。您可以透過在 API 伺服器上設定 `--runtime-config` 來啟用或停用它們。`--runtime-config` 標誌接受逗號分隔的 `
- 要停用 `batch/v1`,請設定 `--runtime-config=batch/v1=false`
- 要啟用 `batch/v2alpha1`,請設定 `--runtime-config=batch/v2alpha1`
- 要啟用特定版本的 API,例如 `storage.k8s.io/v1beta1/csistoragecapacities`,請設定 `--runtime-config=storage.k8s.io/v1beta1/csistoragecapacities`
注意
當您啟用或停用群組或資源時,需要重新啟動 API 伺服器和控制器管理器以取得 `--runtime-config` 變更。持續性
Kubernetes 透過將 API 資源寫入 etcd,以 API 資源的形式儲存其序列化狀態。