API 概述
本節提供 Kubernetes API 的參考資訊。
REST API 是 Kubernetes 的基本架構。所有元件之間的操作和通訊,以及外部使用者命令,都是 API 伺服器處理的 REST API 呼叫。因此,Kubernetes 平臺中的所有內容都被視為 API 物件,並在 API 中有對應的條目。
Kubernetes API 參考 列出了 Kubernetes v1.34 版本的 API。
有關一般背景資訊,請閱讀 Kubernetes API。控制對 Kubernetes API 的訪問 描述了客戶端如何向 Kubernetes API 伺服器進行身份驗證,以及其請求如何獲得授權。
API 版本控制
JSON 和 Protobuf 序列化模式遵循相同的模式變更準則。以下描述涵蓋了這兩種格式。
API 版本控制和軟體版本控制是間接相關的。API 和釋出版本控制提案 描述了 API 版本控制與軟體版本控制之間的關係。
不同的 API 版本表示不同的穩定性和支援級別。你可以在 API 變更文件 中找到有關每個級別標準的更多資訊。
以下是每個級別的摘要:
Alpha
- 版本名稱包含
alpha
(例如,v1alpha1
)。 - 內建的 alpha API 版本預設停用,必須在
kube-apiserver
配置中顯式啟用才能使用。 - 軟體可能包含 Bug。啟用某個功能可能會暴露 Bug。
- 對 alpha API 的支援可能隨時取消,恕不另行通知。
- API 可能在後續的軟體版本中以不相容的方式更改,恕不另行通知。
- 由於 Bug 風險增加且缺乏長期支援,該軟體建議僅在短生命週期的測試叢集中使用。
- 版本名稱包含
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 的所有未來主要版本中保持可用,目前沒有計劃對 Kubernetes 進行重大版本修訂以移除穩定 API。
- 版本名稱為
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
標誌接受逗號分隔的 <key>[=<value>]
對,描述 API 伺服器的執行時配置。如果省略 =<value>
部分,則將其視為指定了 =true
。例如:
- 要停用
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 約定 的更多資訊。
- 閱讀有關 聚合器 的設計文件。
- 瞭解 宣告式 API 驗證。