本部分為 Kubernetes 文件的參考內容。
API 參考
- 詞彙表 - Kubernetes 術語的完整標準化清單
- Kubernetes API 參考
- Kubernetes API 單頁參考 v1.35
- 使用 Kubernetes API - Kubernetes API 的概覽
- API 存取控制 - 說明 Kubernetes 如何控管 API 的存取
- 常見標籤、註解與污點
官方支援的用戶端程式庫
若要透過程式語言呼叫 Kubernetes API,可以使用用戶端程式庫。以下為官方支援的用戶端程式庫:
- Kubernetes Go 用戶端程式庫
- Kubernetes Python 用戶端程式庫
- Kubernetes Java 用戶端程式庫
- Kubernetes JavaScript 用戶端程式庫
- Kubernetes C# 用戶端程式庫
- Kubernetes Haskell 用戶端程式庫
CLI
- kubectl - 用於執行指令及管理 Kubernetes 叢集的主要 CLI 工具。
- JSONPath - 說明如何在 kubectl 中使用
JSONPath 表達式 的語法指南。
- JSONPath - 說明如何在 kubectl 中使用
- kubeadm - 用於快速建立安全 Kubernetes 叢集的 CLI 工具。
組件
-
kubelet - 在每個節點上執行的主要代理程式。kubelet 會接收一組 PodSpec,並確保其描述的容器維持正常且健康的運作狀態。
-
kube-apiserver - 提供 REST API,用於驗證與設定 API 物件(例如 Pod、Service 或 ReplicationController)的資料。
-
kube-controller-manager - 執行 Kubernetes 核心控制迴圈的常駐程式。
-
kube-proxy - 可進行簡單的 TCP/UDP 流量轉發,或在一組後端之間進行輪詢式 TCP/UDP 轉發。
-
kube-scheduler - 負責管理資源可用性、效能與容量的排程器。
-
控制平面與工作節點上需開放的連接埠與通訊協定
設定 API
本節提供用於設定 Kubernetes 組件或工具的「未公開」API 文件。 這些 API 雖未透過 RESTful 方式由 API Server 對外提供, 但對於使用者或維運人員管理叢集而言仍相當重要。
- kubeconfig(v1)
- kuberc(v1alpha1)和 kuberc (v1beta1)
- kube-apiserver 准入(v1)
- kube-apiserver 設定(v1alpha1)和 kube-apiserver 設定(v1beta1)和 kube-apiserver 設定(v1)
- kube-apiserver 事件速率限制(v1alpha1)
- kubelet 設定(v1alpha1)、 kubelet 設定(v1beta1)和 kubelet 設定(v1)
- kubelet 憑證提供者(v1)
- kube-scheduler 設定(v1)
- kube-controller-manager 設定(v1alpha1)
- kube-proxy 設定(v1alpha1)
audit.k8s.io/v1API- 用戶端身分驗證 API(v1beta1)及 用戶端身分驗證 API(v1)
- WebhookAdmission 設定(v1)
- ImagePolicy API(v1alpha1)
kubeadm 設定 API
外部 API
這些 API 由 Kubernetes 專案所定義,但並非由核心專案實作:
設計文件
此處彙整 Kubernetes 功能的設計文件。建議可從以下文件開始閱讀: Kubernetes 架構和 Kubernetes 設計概覽
編碼
諸如 kubectl 等工具, 可處理不同的格式與編碼,包括:
- CBOR,用於網路傳輸,但不支援作為 kubectl 的輸出格式。
- 請參閱 CBOR 資源編碼
- JSON,可作為
kubectl的輸出格式,也用於 HTTP 層。 - KYAML,為 Kubernetes 所使用的 YAML 方言。
- KYAML 本質上是一種輸出格式;在任何可提供 KYAML 給 Kubernetes 的情境中, 也可提供其他任何有效的 YAML 輸入。
- YAML,可作為
kubectl的輸出格式,也用於 HTTP 層。
Kubernetes 也提供一種自訂的 protobuf 編碼, 僅用於 HTTP 訊息中。
kubectl 工具也支援其他輸出格式,例如自訂欄位;
詳情請參閱 kubectl 參考文件中的輸出格式。