詞彙表

此詞彙表旨在提供一個全面、標準化的 Kubernetes 術語列表。它包括 Kubernetes 特有的技術術語,以及提供有用上下文的更通用術語。

根據標籤過濾術語

Kubernetes 的內部元件。
與 Kubernetes 開源開發相關。
Kubernetes 預設支援的資源型別。
Kubernetes 支援的自定義功能。
與 Kubernetes 初次使用者相關。
Kubernetes 元件如何相互通訊(以及與叢集外部程式通訊)。
啟動和維護 Kubernetes。
確保 Kubernetes 應用程式安全無虞。
Kubernetes 應用程式如何處理持久資料。
使 Kubernetes 更易於使用或效能更佳的軟體。
代表一種常見的 Kubernetes 使用者型別。
在 Kubernetes 上執行的應用程式。
架構 社群 核心物件 擴充套件 基礎 網路 操作 安全 儲存 工具 使用者型別 工作負載 全選 取消全選

單擊下面的 [+] 指示符以獲取任何特定術語的更長解釋。

  • 附加元件

    擴充套件 Kubernetes 功能的資源。

    [+]

    安裝附加元件 解釋了更多關於如何使用附加元件以及一些流行的附加元件。

  • 准入控制器

    在物件持久化之前攔截對 Kubernetes API 伺服器請求的一段程式碼。

    [+]

    准入控制器可為 Kubernetes API 伺服器配置,可為“驗證型”、“變更型”或兩者兼有。任何准入控制器都可以拒絕請求。變更型控制器可以修改它們准入的物件;驗證型控制器則不能。

  • 親和性

    在 Kubernetes 中,**親和性**是一組規則,向排程器提供放置 Pod 的提示。

    [+]

    親和性有兩種型別:

    這些規則是使用 Kubernetes 標籤選擇器Pod 中指定的,可以是必需的或首選的,具體取決於你希望排程器強制執行的嚴格程度。

  • 聚合層

    聚合層允許你在叢集中安裝額外的 Kubernetes 風格的 API。

    [+]

    當你配置 Kubernetes API 伺服器支援額外的 API 時,你可以新增 `APIService` 物件以“宣告”Kubernetes API 中的 URL 路徑。

  • 註解

    用於將任意非標識元資料附加到物件的鍵值對。

    [+]

    註解中的元資料可以是小的或大的,結構化的或非結構化的,並且可以包含 標籤 不允許的字元。工具和庫等客戶端可以檢索此元資料。

  • API 組

    Kubernetes API 中一組相關的路徑。

    [+]

    你可以透過更改 API 伺服器的配置來啟用或停用每個 API 組。你還可以停用或啟用特定 資源 的路徑。API 組使擴充套件 Kubernetes API 變得更容易。API 組在 REST 路徑和序列化 物件 的 `apiVersion` 欄位中指定。

    • 閱讀 API 組 以獲取更多資訊。
  • API 資源
    也稱為:資源

    Kubernetes 型別系統中的實體,對應於 Kubernetes API 上的一個端點。資源通常表示一個 物件。某些資源表示對其他物件的操作,例如許可權檢查。

    [+]

    每個資源表示 Kubernetes API 伺服器上的一個 HTTP 端點(URI),定義了該資源上物件或操作的模式。

  • API 伺服器
    也稱為:kube-apiserver

    API 伺服器是 Kubernetes 控制平面 的一個元件,它暴露 Kubernetes API。API 伺服器是 Kubernetes 控制平面的前端。

    [+]

    Kubernetes API 伺服器的主要實現是 kube-apiserver。kube-apiserver 設計為水平擴充套件——也就是說,它透過部署更多例項來擴充套件。你可以執行多個 kube-apiserver 例項並在這些例項之間平衡流量。

  • API 發起的驅逐

    API 發起的驅逐是你使用 驅逐 API 建立一個 `Eviction` 物件以觸發優雅的 Pod 終止的過程。

    [+]

    你可以透過使用 kube-apiserver 的客戶端(例如 `kubectl drain` 命令)直接呼叫驅逐 API 來請求驅逐。當 `Eviction` 物件建立時,API 伺服器終止 Pod。

    API 發起的驅逐遵循你配置的 `PodDisruptionBudgets``terminationGracePeriodSeconds`

    API 發起的驅逐與 節點壓力驅逐 不同。

  • 應用程式容器

    應用程式容器(或應用容器)是 容器 中的 Pod,在任何 初始化容器 完成後啟動。

    [+]

    初始化容器允許你分離對整個 工作負載 很重要,並且在應用程式容器啟動後不需要繼續執行的初始化細節。如果 Pod 沒有配置任何初始化容器,則該 Pod 中的所有容器都是應用程式容器。

  • 應用程式架構師

    負責應用程式高階設計的人員。

    [+]

    架構師確保應用程式的實現允許它以可伸縮、可維護的方式與其周圍的元件互動。周圍的元件包括資料庫、日誌基礎設施和其他微服務。

  • 應用程式開發人員

    編寫在 Kubernetes 叢集中執行的應用程式的人員。

    [+]

    應用程式開發人員專注於應用程式的一部分。他們關注的範圍大小可能差異很大。

  • 應用程式
    執行各種容器化應用程式的層。 [+]

    執行各種容器化應用程式的層。

  • 批准者

    可以審閱和批准 Kubernetes 程式碼貢獻的人員。

    [+]

    雖然程式碼審閱側重於程式碼質量和正確性,但批准側重於對貢獻的整體接受。整體接受包括向後/向前相容性、遵守 API 和標誌約定、微妙的效能和正確性問題、與系統其他部分的互動等等。批准者狀態限定在程式碼庫的一部分。批准者以前被稱為維護者。

  • cAdvisor

    cAdvisor (Container Advisor) 為容器使用者提供對其執行 資源 使用情況和效能特徵的瞭解。

    [+]

    它是一個執行的守護程序,用於收集、聚合、處理和匯出有關執行容器的資訊。具體來說,對於每個容器,它保留資源隔離引數、歷史資源使用情況、完整歷史資源使用情況直方圖和網路統計資訊。此資料按容器和機器範圍匯出。

  • 證書

    用於驗證對 Kubernetes 叢集訪問的加密安全檔案。

    [+]

    證書使 Kubernetes 叢集內的應用程式能夠安全地訪問 Kubernetes API。證書驗證客戶端是否被允許訪問 API。

  • cgroup(控制組)

    一組可選的 資源 隔離、記賬和限制的 Linux 程序組。

    [+]

    cgroup 是一個 Linux 核心特性,它限制、記賬並隔離一組程序的資源使用(CPU、記憶體、磁碟 I/O、網路)。

  • CIDR

    CIDR(無類別域間路由)是描述 IP 地址塊的表示法,在各種網路配置中大量使用。

    [+]

    在 Kubernetes 的上下文中,每個 節點 都透過起始地址和使用 CIDR 的子網掩碼分配一個 IP 地址範圍。這允許節點為每個 Pod 分配一個唯一的 IP 地址。儘管最初是 IPv4 的概念,但 CIDR 也已擴充套件到包括 IPv6。

  • CLA(貢獻者許可協議)

    貢獻者 根據其貢獻授予開源專案的許可條款。

    [+]

    CLA 有助於解決涉及貢獻材料和智慧財產權 (IP) 的法律糾紛。

  • 雲控制器管理器

    一個 Kubernetes 控制平面 元件,它嵌入了雲特定的控制邏輯。雲控制器管理器允許你將叢集連結到雲提供商的 API,並將與該雲平臺互動的元件與僅與叢集互動的元件分離。

    [+]

    透過解耦 Kubernetes 與底層雲基礎設施之間的互操作性邏輯,雲控制器管理器元件使雲提供商能夠以與主 Kubernetes 專案不同的速度釋出功能。

  • 雲原生計算基金會 (CNCF)

    雲原生計算基金會 (CNCF) 圍繞將容器編排作為微服務架構一部分的 專案 構建可持續的生態系統並培養社群。

    Kubernetes 是一個 CNCF 專案。

    [+]

    CNCF 是 Linux 基金會 的一個子基金會。其使命是使雲原生計算無處不在。

  • 雲提供商
    也稱為:雲服務提供商

    提供雲計算平臺的公司或其他組織。

    [+]

    雲提供商,有時稱為雲服務提供商 (CSP),提供雲計算平臺或服務。

    許多雲提供商提供託管基礎設施(也稱為基礎設施即服務或 IaaS)。透過託管基礎設施,雲提供商負責伺服器、儲存和網路,而你則管理其上的層,例如執行 Kubernetes 叢集。

    你還可以找到作為託管服務的 Kubernetes;有時稱為平臺即服務或 PaaS。透過託管 Kubernetes,你的雲提供商負責 Kubernetes 控制平面以及 節點 和它們所依賴的基礎設施:網路、儲存,以及可能其他元素,如負載均衡器。

  • 叢集

    一組執行容器化應用程式的工作機器,稱為 節點。每個叢集至少有一個工作節點。

    [+]

    工作節點託管作為應用程式工作負載元件的 Pod控制平面 管理工作節點和叢集中的 Pod。在生產環境中,控制平面通常執行在多臺計算機上,叢集通常執行多個節點,提供容錯和高可用性。

  • 叢集架構師

    設計涉及一個或多個 Kubernetes 叢集的基礎設施的人員。

    [+]

    叢集架構師關注分散式系統的最佳實踐,例如:高可用性和安全性。

  • 叢集基礎設施
    基礎設施層提供並維護虛擬機器、網路、安全組等。 [+]

    基礎設施層提供並維護虛擬機器、網路、安全組等。

  • 叢集操作

    管理 Kubernetes 叢集所需的工作:管理日常操作,以及協調升級。

    [+]

    叢集操作工作示例包括:部署新節點以擴縮叢集;執行軟體升級;實施安全控制;新增或移除儲存;配置叢集網路;管理叢集範圍的可觀測性;以及響應事件。

  • 叢集運維人員

    配置、控制和監控叢集的人員。

    [+]

    他們的主要職責是保持叢集正常執行,這可能涉及定期維護活動或升級。

  • 程式碼貢獻者

    開發程式碼並將其貢獻給 Kubernetes 開原始碼庫的人員。

    [+]

    他們也是積極的 社群成員,參與一個或多個 特別興趣小組 (SIG)

  • 通用表示式語言
    也稱為:CEL

    一種通用表示式語言,設計用於快速、便攜和安全地執行。

    [+]

    在 Kubernetes 中,CEL 可用於執行查詢和執行細粒度過濾。例如,你可以將 CEL 表示式與 動態准入控制 一起使用以過濾請求中的特定欄位,並與 動態資源分配 (DRA) 一起使用以根據特定屬性選擇資源。

  • ConfigMap

    一個 API 物件,用於以鍵值對形式儲存非機密資料。Pod 可以將 ConfigMap 作為環境變數、命令列引數或 中的配置檔案使用。

    [+]

    ConfigMap 允許你將特定於環境的配置與你的 容器映象 解耦,從而使你的應用程式易於移植。

  • 容器

    一種輕量級、可移植的可執行映象,包含軟體及其所有依賴項。

    [+]

    容器將應用程式與底層主機基礎設施解耦,以便更容易地部署到不同的雲或作業系統環境中,並更容易地進行擴充套件。在容器內部執行的應用程式稱為容器化應用程式。將這些應用程式及其依賴項打包成容器映象的過程稱為容器化。

  • 容器環境變數

    容器環境變數是 `name=value` 對,為在 Pod 中執行的容器提供有用資訊。

    [+]

    容器環境變數提供執行容器化應用程式所需的資訊,以及關於 容器 的重要相關細節以及其他叢集資源(如服務終點)的資訊。

  • 容器生命週期鉤子

    生命週期鉤子暴露了 容器 管理生命週期中的事件,並允許使用者在事件發生時執行程式碼。

    [+]

    容器暴露了兩個鉤子:PostStart 在容器建立後立即執行,PreStop 是阻塞的,在容器終止前立即呼叫。

  • 容器網路介面 (CNI)

    容器網路介面 (CNI) 外掛是一種遵循 appc/CNI 規範的網路外掛。

    [+]
    • 有關 Kubernetes 和 CNI 的資訊,請參閱 網路外掛
  • 容器執行時

    使 Kubernetes 能夠有效執行容器的基本元件。它負責管理 Kubernetes 環境中容器的執行和生命週期。

    [+]

    Kubernetes 支援的容器執行時包括 containerdCRI-O 以及 Kubernetes CRI(容器執行時介面) 的任何其他實現。

  • 容器執行時介面 (CRI)

    kubelet 和容器執行時之間通訊的主要協議。

    [+]

    Kubernetes 容器執行時介面 (CRI) 定義了 gRPC 協議,用於 節點元件 kubelet容器執行時 之間的主要通訊。

  • 容器儲存介面 (CSI)

    容器儲存介面 (CSI) 定義了一個標準介面,用於將儲存系統暴露給容器。

    [+]

    CSI 允許供應商為 Kubernetes 建立自定義儲存外掛,而無需將其新增到 Kubernetes 倉庫(out-of-tree 外掛)。要使用儲存提供商的 CSI 驅動程式,你必須首先 將其部署到叢集。然後,你將能夠建立使用該 CSI 驅動程式的 Storage Class

  • containerd

    一種容器執行時,強調簡潔性、健壯性和可移植性

    [+]

    containerd 是一個 容器 執行時,在 Linux 或 Windows 上作為守護程序執行。containerd 負責獲取和儲存容器映象、執行容器、提供網路訪問等。

  • 貢獻者

    為 Kubernetes 專案或社群捐贈程式碼、文件或時間的人員。

    [+]

    貢獻包括拉取請求 (PRs)、問題、反饋、特別興趣小組 (SIG) 參與或組織社群活動。

  • 控制平面

    容器編排層,它暴露 API 和介面來定義、部署和管理容器的生命週期。

    [+]

    該層由許多不同的元件組成,例如(但不限於):

    這些元件可以作為傳統的作業系統服務(守護程序)或作為容器執行。執行這些元件的主機在歷史上被稱為 master

  • 控制器

    在 Kubernetes 中,控制器是控制迴圈,它們監視 叢集 的狀態,然後在需要時進行或請求更改。每個控制器都試圖使當前叢集狀態更接近所需狀態。

    [+]

    控制器透過 apiserver控制平面的一部分)監視叢集的共享狀態。

    一些控制器也在控制平面內部執行,提供作為 Kubernetes 核心操作的控制迴圈。例如:Deployment 控制器、DaemonSet 控制器、Namespace 控制器和 Persistent Volume 控制器(以及其他控制器)都執行在 kube-controller-manager 中。

  • CRI-O

    一個工具,允許你將 OCI 容器執行時與 Kubernetes CRI 結合使用。

    [+]

    CRI-O 是 容器執行時介面 (CRI) 的實現,它使得能夠使用與開放容器倡議 (OCI) 執行時規範相容的容器執行時。

    部署 CRI-O 允許 Kubernetes 使用任何符合 OCI 的執行時作為執行 Pod 的容器執行時,並從遠端倉庫拉取 OCI 容器映象。

  • CronJob

    管理按週期性排程執行的 Job

    [+]

    類似於 crontab 檔案中的一行,CronJob 物件使用 cron 格式指定排程。

  • CustomResourceDefinition

    一種 API 物件,它定義了一個新的自定義 API,可新增到 Kubernetes API 伺服器,而無需構建一個完整的自定義伺服器。

    [+]

    如果內建的 API 資源無法滿足你的需求,CustomResourceDefinitions 允許你為你的環境擴充套件 Kubernetes API。

  • DaemonSet

    確保 Pod 的一個副本在叢集中的一組節點上執行。

    [+]

    用於部署系統守護程序,例如日誌收集器和監控代理,它們通常必須在每個節點上執行。

  • 資料平面
    提供 CPU、記憶體、網路和儲存等容量的層,以便容器可以執行並連線到網路。[+]

    提供 CPU、記憶體、網路和儲存等容量的層,以便容器可以執行並連線到網路。

  • Deployment

    一個 API 物件,用於管理複製的應用程式,通常透過執行沒有本地狀態的 Pod 來實現。

    [+]

    每個副本由一個 Pod 表示,並且 Pod 分佈在叢集的 節點之間。對於確實需要本地狀態的工作負載,請考慮使用 StatefulSet

  • 開發者(消歧)

    可能指:應用程式開發者程式碼貢獻者,或平臺開發者

    [+]

    這個過載的術語根據上下文可能具有不同的含義。

  • 裝置

    一個或多個直接或間接連線到節點基礎設施資源

    [+]

    裝置可能是 GPU 等商業產品,也可能是 ASIC 板等定製硬體。連線的裝置通常需要裝置驅動程式,以允許 Kubernetes Pod 訪問這些裝置。

  • 裝置外掛

    裝置外掛在工作節點上執行,為Pod 提供對基礎設施資源(例如本地硬體)的訪問,這些資源需要供應商特定的初始化或設定步驟。

    [+]

    裝置外掛將資源廣告給 kubelet,以便工作負載 Pod 可以訪問與該 Pod 執行的節點相關的硬體功能。你可以將裝置外掛部署為 DaemonSet,或者直接在每個目標節點上安裝裝置外掛軟體。

    有關更多資訊,請參閱裝置外掛

  • DeviceClass

    叢集中可用於動態資源分配 (DRA) 的裝置類別。

    [+]

    管理員或裝置所有者使用 DeviceClass 來定義一組可在工作負載中宣告和使用的裝置。透過建立 ResourceClaim 來宣告裝置,這些 ResourceClaim 會篩選 DeviceClass 中特定的裝置引數。

    有關更多資訊,請參閱動態資源分配

  • 中斷

    中斷是導致一個或多個 Pod 停止服務的事件。中斷對依賴受影響 Pod 的工作負載管理資源(例如 Deployment)有影響。

    [+]

    如果你作為叢集操作員,銷燬屬於某個應用程式的 Pod,Kubernetes 將其稱為 自願中斷。如果 Pod 因節點故障或影響更廣泛故障區域的停機而離線,Kubernetes 將其稱為 非自願中斷

    有關更多資訊,請參閱中斷

  • Docker

    Docker(特指 Docker Engine)是一種提供作業系統級虛擬化(也稱為容器)的軟體技術。

    [+]

    Docker 利用 Linux 核心的資源隔離特性(如 cgroups 和核心名稱空間)以及支援聯合檔案系統(如 OverlayFS 和其他檔案系統),允許獨立容器在單個 Linux 例項中執行,避免了啟動和維護虛擬機器 (VM) 的開銷。

  • Dockershim

    Dockershim 是 Kubernetes 1.23 及更早版本的一個元件。它允許 kubeletDocker Engine 通訊。

    [+]

    從 1.24 版本開始,dockershim 已從 Kubernetes 中移除。有關更多資訊,請參閱 Dockershim 常見問題

  • 下游(消歧)

    可能指:Kubernetes 生態系統中依賴核心 Kubernetes 程式碼庫或分支程式碼庫的程式碼。

    [+]
    • 在 **Kubernetes 社群**:對話中經常使用 *下游* 指代依賴核心 Kubernetes 程式碼庫的生態系統、程式碼或第三方工具。例如,Kubernetes 中的新功能可能會被*下游*應用程式採用以改善其功能。
    • 在 **GitHub** 或 **git**:慣例是將分支倉庫稱為 *下游*,而源倉庫則被視為 *上游*。
  • Downward API

    Kubernetes 暴露 Pod 和容器欄位值給容器中執行的程式碼的機制。

    [+]

    有時,容器需要了解自身資訊,而無需修改容器程式碼使其直接與 Kubernetes 耦合。

    Kubernetes downward API 允許容器使用關於自身或其在 Kubernetes 叢集中上下文的資訊。容器中的應用程式可以訪問這些資訊,而無需應用程式充當 Kubernetes API 的客戶端。

    有兩種方法可以向執行中的容器暴露 Pod 和容器欄位:

    這兩種暴露 Pod 和容器欄位的方式統稱為 *downward API*。

  • 排空

    安全驅逐Pod 的過程,使其脫離 節點,以便為維護或從叢集中移除做好準備。

    [+]

    kubectl drain 命令用於將節點標記為停止服務。執行後,它會從節點驅逐所有Pod。如果驅逐請求暫時被拒絕,kubectl drain 會重試直到所有Pod 都終止或達到可配置的超時。

  • 持續時間

    表示時間量的一個字串值。

    [+]

    (Kubernetes)持續時間的格式基於 Go 程式語言中的 time.Duration 型別。

    在 Kubernetes API 中使用持續時間時,值表示為一系列非負整數與時間單位字尾的組合。你可以有多個時間量,持續時間是這些時間量的總和。有效的時間單位是“ns”、“µs”(或“us”)、“ms”、“s”、“m”和“h”。

    例如:5s 表示五秒的持續時間,1m30s 表示一分三十秒的持續時間。

  • 動態資源分配
    亦稱:DRA

    Kubernetes 功能,允許你在 Pod 之間請求和共享資源。這些資源通常是連線的裝置,如硬體加速器。

    [+]

    透過 DRA,裝置驅動程式和叢集管理員定義可在工作負載中**宣告**的裝置**類**。Kubernetes 將匹配的裝置分配給特定的宣告,並將相應的 Pod 放置在可以訪問分配裝置的節點上。

  • 動態卷供給

    允許使用者請求自動建立儲存

    [+]

    動態供給消除了叢集管理員預先供給儲存的需要。相反,它根據使用者請求自動供給儲存。動態卷供給基於一個 API 物件 StorageClass,它引用一個用於供給卷外掛以及要傳遞給該卷外掛的一組引數。

  • 端點

    Service 的一個端點是實現該 Service 的 Pod(或外部伺服器)之一。

    [+]

    對於帶有選擇器的 Service,EndpointSlice 控制器將自動建立一個或多個 EndpointSlice,給出選定端點 Pod 的 IP 地址。

    EndpointSlice 也可以手動建立,以指示未指定選擇器的 Service 的端點。

  • EndpointSlice

    EndpointSlice 跟蹤匹配選擇器的 Pod 的 IP 地址。

    [+]

    EndpointSlice 可以為未指定選擇器的服務手動配置。

  • 臨時容器

    一種容器型別,你可以暫時在Pod 內部執行。

    [+]

    如果你想調查一個執行有問題的 Pod,你可以向該 Pod 新增一個臨時容器並進行診斷。臨時容器沒有資源或排程保證,你不應該使用它們來執行工作負載的任何部分。

    臨時容器不受靜態 Pod 的支援。

  • etcd

    一致且高可用的鍵值儲存,用作 Kubernetes 所有叢集資料的後端儲存。

    [+]

    如果你的 Kubernetes 叢集使用 etcd 作為其後端儲存,請確保你有一個數據備份計劃。

    你可以在官方文件中找到有關 etcd 的深入資訊。

  • 事件

    一個 Kubernetes 物件,描述叢集中的狀態變化或值得注意的事件。

    [+]

    事件的保留時間有限,觸發器和訊息可能會隨時間演變。事件消費者不應依賴於具有給定原因的事件的時間反映一致的底層觸發器,或具有該原因的事件的持續存在。

    事件應被視為資訊性的、盡力而為的補充資料。

    在 Kubernetes 中,審計生成一種不同型別的事件記錄(API 組 audit.k8s.io)。

  • 驅逐

    驅逐是終止節點上一個或多個 Pod 的過程。

    [+]
  • 擴充套件

    擴充套件是軟體元件,它們擴充套件並深度整合到 Kubernetes 中,以支援新型硬體。

    [+]

    許多叢集管理員使用 Kubernetes 的託管或發行例項。這些叢集預裝了擴充套件。因此,大多數 Kubernetes 使用者不需要安裝擴充套件,更少的使用者需要編寫新的擴充套件。

  • 功能開關

    功能開關是一組鍵(不透明字串值),你可以使用它們來控制叢集中啟用的 Kubernetes 功能。

    [+]

    你可以在每個 Kubernetes 元件上使用 --feature-gates 命令列標誌來開啟或關閉這些功能。每個 Kubernetes 元件都允許你啟用或停用一組與該元件相關的功能開關。Kubernetes 文件列出了所有當前功能開關以及它們控制的內容。

  • 終結器

    終結器是名稱空間鍵,它告訴 Kubernetes 在完全刪除標記為待刪除的資源之前等待特定條件滿足。終結器提醒控制器清理被刪除物件擁有的資源。

    [+]

    當你告訴 Kubernetes 刪除一個已為其指定終結器的物件時,Kubernetes API 會透過填充 .metadata.deletionTimestamp 來標記該物件待刪除,並返回 202 狀態碼(HTTP "Accepted")。目標物件在終止狀態下保持,而控制平面或其他元件執行由終結器定義的操作。這些操作完成後,控制器會從目標物件中刪除相關的終結器。當 metadata.finalizers 欄位為空時,Kubernetes 認為刪除完成並刪除該物件。

    你可以使用終結器來控制資源的垃圾回收。例如,你可以定義一個終結器來清理相關的API 資源或基礎設施,然後控制器再刪除被終結的物件。

  • FlexVolume

    FlexVolume 是一個已棄用的介面,用於建立樹外卷外掛。容器儲存介面是一個較新的介面,解決了 FlexVolume 的一些問題。

    [+]

    FlexVolume 允許使用者編寫自己的驅動程式並在 Kubernetes 中新增對其卷的支援。FlexVolume 驅動程式二進位制檔案和依賴項必須安裝在主機上。這需要 root 訪問許可權。儲存 SIG 建議儘可能實現 CSI 驅動程式,因為它解決了 FlexVolume 的限制。

  • 垃圾回收

    垃圾回收是 Kubernetes 用於清理叢集資源的各種機制的統稱。

    [+]

    Kubernetes 使用垃圾回收來清理資源,例如未使用的容器和映象失敗的 Pod目標資源擁有的物件已完成的 Job 以及已過期或失敗的資源。

  • Gateway API

    用於在 Kubernetes 中建模服務網路的 API 種類系列。

    [+]

    Gateway API 提供了一系列可擴充套件、面向角色、協議感知的 API 種類,用於在 Kubernetes 中建模服務網路。

  • 組版本資源
    亦稱:GVR

    用於唯一表示特定 Kubernetes API 的方法。

    [+]

    組版本資源 (GVR) 指定與訪問 Kubernetes 中特定物件 ID 相關的 API 組、API 版本和**資源**(在 URI 中顯示的物件型別名稱)。GVR 允許你定義和區分不同的 Kubernetes 物件,並指定一種訪問物件的方式,即使 API 發生變化也能保持穩定。

    在此用法中,**資源**指 HTTP 資源。因為某些 API 是名稱空間化的,所以 GVR 可能不指特定的API 資源

  • Helm Chart

    一個預配置的 Kubernetes 配置包,可以使用 Helm 工具進行管理。

    [+]

    Chart 提供了一種可重複建立和共享 Kubernetes 應用程式的方式。單個 Chart 可以用於部署簡單的東西,例如 memcached Pod,也可以部署複雜的東西,例如帶有 HTTP 伺服器、資料庫、快取等完整 Web 應用程式棧。

  • Horizontal Pod Autoscaler
    亦稱:HPA

    一個根據目標資源利用率或自定義指標目標自動擴縮 Pod 副本數量的物件

    [+]

    HorizontalPodAutoscaler (HPA) 通常與DeploymentReplicaSet 一起使用。它不能應用於無法擴縮的物件,例如 DaemonSet

  • HostAliases

    HostAliases 是要注入到Pod 的 hosts 檔案中的 IP 地址和主機名之間的對映。

    [+]

    HostAliases 是一個可選的主機名和 IP 地址列表,如果指定,它們將被注入到 Pod 的 hosts 檔案中。這僅適用於非 hostNetwork Pod。

  • 映象

    容器的儲存例項,包含執行應用程式所需的一組軟體。

    [+]

    一種打包軟體的方式,允許將其儲存在容器倉庫中,拉取到本地系統,並作為應用程式執行。映象中包含元資料,可以指示要執行哪個可執行檔案、構建者以及其他資訊。

  • 不可變基礎設施

    不可變基礎設施是指一旦部署後就不能更改的計算機基礎設施(虛擬機器、容器、網路裝置)。

    [+]

    不變性可以透過自動化過程來強制執行,該過程會覆蓋未經授權的更改,或者透過一個系統來強制執行,該系統根本不允許更改。容器是不可變基礎設施的一個很好的例子,因為對容器的持久更改只能透過建立容器的新版本或從其映象重新建立現有容器來實現。

    透過防止或識別未經授權的更改,不可變基礎設施使識別和緩解安全風險變得更加容易。作業系統變得更加簡單,因為管理員可以對其進行假設。畢竟,他們知道沒有人犯錯或忘記溝通更改。不可變基礎設施與基礎設施即程式碼攜手並進,所有建立基礎設施所需的自動化都儲存在版本控制(例如 Git)中。不變性和版本控制的結合意味著系統所有授權更改都有一個持久的審計日誌。

  • Ingress

    一個 API 物件,用於管理對叢集中服務的外部訪問,通常是 HTTP。

    [+]

    Ingress 可以提供負載均衡、SSL 終止和基於名稱的虛擬主機。

  • Init 容器

    一個或多個初始化容器,它們必須在任何應用程式容器執行之前完成。

    [+]

    初始化 (init) 容器與普通應用程式容器類似,但有一個區別:init 容器必須在任何應用程式容器啟動之前完成執行。init 容器按順序執行:每個 init 容器必須在下一個 init 容器開始之前完成執行。

    邊車容器不同,init 容器在 Pod 啟動後不會繼續執行。

    有關更多資訊,請閱讀初始化容器

  • Istio

    一個開放平臺(非 Kubernetes 特有),提供統一的方式來整合微服務、管理流量、強制執行策略和聚合遙測資料。

    [+]

    新增 Istio 不需要更改應用程式程式碼。它是服務和網路之間的一層基礎設施,與服務部署結合使用時,通常被稱為服務網格。Istio 的控制平面抽象了底層叢集管理平臺,該平臺可以是 Kubernetes、Mesosphere 等。

  • Job

    一個有限或批處理任務,執行至完成。

    [+]

    建立一個或多個 Pod 物件,並確保指定數量的 Pod 成功終止。當 Pod 成功完成時,Job 會跟蹤成功的完成情況。

  • JSON Web Token (JWT)

    一種表示在雙方之間傳輸宣告的方式。

    [+]

    JWT 可以進行數字簽名和加密。Kubernetes 使用 JWT 作為身份驗證令牌,以驗證希望在叢集中執行操作的實體的身份。

  • kOps (Kubernetes Operations)

    kOps 不僅可以幫助你建立、銷燬、升級和維護生產級、高可用的 Kubernetes 叢集,它還將提供必要的雲基礎設施。

    [+]

    kOps 是一個自動化部署系統

    • 全自動安裝
    • 使用 DNS 識別叢集
    • 自修復:一切都在 Auto-Scaling Group 中執行
    • 支援多種作業系統(Amazon Linux、Debian、Flatcar、RHEL、Rocky 和 Ubuntu)
    • 高可用性支援
    • 可以直接部署,或生成 Terraform 清單
  • kube-controller-manager

    執行控制器程序的控制平面元件。

    [+]

    從邏輯上講,每個控制器都是一個獨立的程序,但為了降低複雜性,它們都被編譯成一個單一二進位制檔案並在一個單一程序中執行。

  • kube-proxy

    kube-proxy 是一個網路代理,執行在叢集中的每個節點上,實現了 Kubernetes Service 概念的一部分。

    [+]

    kube-proxy 維護節點上的網路規則。這些網路規則允許叢集內部或外部的網路會話與你的 Pod 進行網路通訊。

    kube-proxy 如果作業系統有資料包過濾層並且可用,就會使用它。否則,kube-proxy 會自己轉發流量。

  • kube-scheduler

    控制平面元件,監視新建立的但未分配節點Pod,併為它們選擇一個執行節點。

    [+]

    排程決策中考慮的因素包括:單獨和集體的資源需求、硬體/軟體/策略限制、親和性和反親和性規範、資料區域性性、工作負載間干擾以及截止日期。

  • Kubeadm

    一個用於快速安裝 Kubernetes 並設定安全叢集的工具。

    [+]

    你可以使用 kubeadm 安裝控制平面和工作節點元件。

  • Kubectl
    亦稱:kubectl

    命令列工具,用於使用 Kubernetes API 與 Kubernetes 叢集的控制平面通訊。

    [+]

    你可以使用 kubectl 建立、檢查、更新和刪除 Kubernetes 物件。

    在英語中,kubectl(官方)發音為 /kjuːb/ /kənˈtɹəʊl/(就像“cube control”)。

  • Kubelet

    一個代理,執行在叢集中的每個節點上。它確保容器Pod 中執行。

    [+]

    kubelet 接收透過各種機制提供的 PodSpec,並確保這些 PodSpec 中描述的容器正在執行且健康。kubelet 不管理非 Kubernetes 建立的容器。

  • Kubernetes API

    透過 RESTful 介面提供 Kubernetes 功能並存儲叢集狀態的應用程式。

    [+]

    Kubernetes 資源和“意圖記錄”都作為 API 物件儲存,並透過對 API 的 RESTful 呼叫進行修改。API 允許以宣告式方式管理配置。使用者可以直接與 Kubernetes API 互動,也可以透過 kubectl 等工具進行互動。核心 Kubernetes API 靈活且可以擴充套件以支援自定義資源。

  • 標籤

    用對使用者有意義和相關的識別屬性標記物件。

    [+]

    標籤是附加到物件(如Pod)的鍵/值對。它們用於組織和選擇物件的子集。

  • LimitRange

    限制每個容器Pod 的資源消耗,為特定名稱空間指定。

    [+]

    一個 LimitRange 限制了可以建立的 API 資源的數量(針對特定資源型別),或者限制了名稱空間內單個容器或 Pod 可以請求/消耗的基礎設施資源的數量。

  • 日誌

    日誌是叢集或應用程式記錄的事件列表。

    [+]

    應用程式和系統日誌可以幫助你瞭解叢集內部發生的情況。這些日誌對於除錯問題和監控叢集活動特別有用。

  • 託管服務

    由第三方提供商維護的軟體產品。

    [+]

    託管服務的一些示例包括 AWS EC2、Azure SQL Database 和 GCP Pub/Sub,但它們可以是任何可供應用程式使用的軟體產品。

  • 清單

    採用 JSONYAML 格式的 Kubernetes API 物件規範。

    [+]

    清單指定了 Kubernetes 在應用清單時將維護的物件期望狀態。對於 YAML 格式,每個檔案可以包含多個清單。

  • 主節點

    舊術語,用作託管控制平面節點的同義詞。

    [+]

    該術語仍被某些部署工具(如 kubeadm)和託管服務使用,以標記帶有 kubernetes.io/role節點,並控制控制平面 Pod 的放置。

  • 成員

    K8s 社群中持續活躍的貢獻者

    [+]

    成員可以分配到問題和 PR,並透過 GitHub 團隊參與特別興趣小組 (SIG)。預提交測試會自動為成員的 PR 執行。成員應保持對社群的積極貢獻。

  • Minikube

    一個用於在本地執行 Kubernetes 的工具。

    [+]

    Minikube 在你計算機上的虛擬機器中執行一個一體化或多節點本地 Kubernetes 叢集。你可以使用 Minikube 在學習環境中嘗試 Kubernetes。

  • 映象 Pod

    一個Pod 物件,kubelet 用它來表示一個靜態 Pod

    [+]

    當 kubelet 在其配置中發現一個靜態 Pod 時,它會自動嘗試在 Kubernetes API 伺服器上為其建立一個 Pod 物件。這意味著該 Pod 將在 API 伺服器上可見,但無法從那裡進行控制。

    (例如,刪除映象 Pod 不會阻止 kubelet 守護程序執行它)。

  • 混合版本代理 (MVP)
    亦稱:MVP

    一項功能,允許 kube-apiserver 將資源請求代理到不同的對等 API 伺服器。

    [+]

    當一個叢集有多個執行不同版本 Kubernetes 的 API 伺服器時,此功能使資源請求由正確的 API 伺服器提供服務。

    MVP 預設停用,可以透過在啟動 API 伺服器時啟用名為 UnknownVersionInteroperabilityProxy功能開關來啟用。

  • 名稱

    客戶端提供的字串,指代 資源 URL 中的物件,例如 /api/v1/pods/some-name

    [+]

    在給定時間,給定型別只有一個物件可以具有給定名稱。但是,如果你刪除該物件,則可以建立一個具有相同名稱的新物件。

  • 名稱空間

    Kubernetes 使用的一種抽象,用於支援單個叢集API 資源組的隔離。

    [+]

    名稱空間用於組織叢集中的物件並提供一種劃分叢集資源的方法。資源名稱在名稱空間內必須是唯一的,但在名稱空間之間不必唯一。基於名稱空間的作用域僅適用於名稱空間資源(例如:Pod、Deployment、Service),而不適用於叢集範圍資源(例如:StorageClass、Node、PersistentVolume)。

  • 網路策略

    一組 Pod 如何相互通訊以及與其他網路端點通訊的規範。

    [+]

    NetworkPolicy 幫助你宣告性地配置哪些 Pod 允許相互連線,哪些名稱空間允許通訊,以及更具體地在哪個埠號上強制執行每個策略。NetworkPolicy 物件使用標籤來選擇 Pod,並定義規則以指定允許哪些流量流向選定的 Pod。

    NetworkPolicy 由網路提供商提供的支援的網路外掛實現。請注意,建立一個 NetworkPolicy 物件而沒有控制器來實現它將不起作用。

  • 節點

    節點是 Kubernetes 中的一臺工作機器。

    [+]

    工作節點可以是虛擬機器或物理機,具體取決於叢集。它具有執行Pod 所需的本地守護程序或服務,並由控制平面管理。節點上的守護程序包括 kubeletkube-proxy,以及實現 CRI 的容器執行時(例如 Docker)。

    在早期的 Kubernetes 版本中,節點被稱為“Minions”。

  • 節點壓力驅逐
    亦稱:kubelet 驅逐

    節點壓力驅逐是 kubelet 主動終止 Pod 以回收節點上的資源的過程。

    [+]

    kubelet 監視叢集節點上的 CPU、記憶體、磁碟空間和檔案系統 inode 等資源。當一個或多個這些資源達到特定消耗水平時,kubelet 可以主動使節點上的一個或多個 Pod 失敗,以回收資源並防止資源耗盡。

    節點壓力驅逐與API 啟動的驅逐不同。

  • 物件

    Kubernetes 系統中的一個實體。物件是一個 API 資源,Kubernetes API 用它來表示叢集的狀態。

    [+]

    Kubernetes 物件通常是“意圖記錄”——一旦你建立了物件,Kubernetes 控制平面就會不斷工作以確保它所代表的專案實際存在。透過建立物件,你實際上是在告訴 Kubernetes 系統你希望叢集的該部分工作負載是什麼樣子;這就是你的叢集的期望狀態。

  • Operator 模式

    Operator 模式是一種系統設計,它將控制器連結到一個或多個自定義資源。

    [+]

    你可以透過向叢集新增控制器來擴充套件 Kubernetes,這些控制器超出了 Kubernetes 本身作為一部分提供的內建控制器。

    如果一個執行中的應用程式充當控制器,並且具有 API 訪問許可權,可以針對在控制平面中定義的自定義資源執行任務,這就是 Operator 模式的一個例子。

  • 持久卷

    一個 API 物件,表示叢集中的一塊儲存。它作為一種通用的、可插拔的儲存資源,其生命週期可以超越任何單個Pod

    [+]

    持久卷 (PV) 提供了一個 API,它將儲存的提供方式與消費方式的細節抽象化。PV 直接用於可以提前建立儲存的場景(靜態供應)。對於需要按需儲存的場景(動態供應),則使用持久卷宣告 (PVC)。

  • 持久卷宣告

    宣告在持久卷中定義的儲存資源,以便儲存可以作為卷掛載到容器中。

    [+]

    指定儲存量、儲存的訪問方式(只讀、讀寫和/或獨佔)以及回收方式(保留、回收或刪除)。儲存本身的詳細資訊在 PersistentVolume 物件中描述。

  • 平臺開發者

    根據專案需求定製 Kubernetes 平臺的人。

    [+]

    例如,平臺開發者可以使用自定義資源使用聚合層擴充套件 Kubernetes API,為其 Kubernetes 例項新增專門針對其應用程式的功能。一些平臺開發者也是貢獻者,他們開發的擴充套件會貢獻給 Kubernetes 社群。其他人則開發閉源的商業或特定站點擴充套件。

  • Pod

    最小、最簡單的 Kubernetes 物件。Pod 代表叢集中一組執行中的容器

    [+]

    Pod 通常配置為執行單個主容器。它還可以執行可選的邊車容器,這些容器添加了日誌記錄等輔助功能。Pod 通常由Deployment管理。

  • Pod 中斷

    Pod 中斷是指節點上的 Pod 被自願或非自願終止的過程。

    [+]

    自願中斷是由應用程式所有者或叢集管理員有意啟動的。非自願中斷是無意的,可能由不可避免的問題觸發,例如節點資源不足,或意外刪除。

  • Pod 中斷預算
    也稱為:PDB

    Pod 中斷預算允許應用程式所有者為複製的應用程式建立一個物件,該物件確保在任何時間點都不會自願驅逐一定數量或百分比的具有指定標籤的Pod

    [+]

    PDB 無法阻止非自願中斷;但是,它們會計入預算。

  • Pod 生命週期

    Pod 在其生命週期中經歷的狀態序列。

    [+]

    Pod 生命週期由 Pod 的狀態或階段定義。Pod 有五種可能的階段:Pending(待處理)、Running(執行中)、Succeeded(成功)、Failed(失敗)和 Unknown(未知)。Pod 狀態的高階描述在 PodStatusphase 欄位中進行了總結。

  • Pod 優先順序

    Pod 優先順序表示一個Pod相對於其他 Pod 的重要性。

    [+]

    Pod 優先順序允許設定 Pod 的排程優先順序高於或低於其他 Pod——這是生產叢集工作負載的重要功能。

  • Pod 安全策略

    一箇舊的 Kubernetes API,用於在Pod建立和更新期間強制執行安全限制。

    [+]

    PodSecurityPolicy 在 Kubernetes v1.21 中已棄用,並於 v1.25 中移除。作為替代方案,請使用Pod 安全准入或第三方准入外掛。

  • PodTemplate
    也稱為:pod 模板

    一個 API 物件,它定義了建立Pod的模板。PodTemplate API 也嵌入在工作負載管理的 API 定義中,例如DeploymentStatefulSets

    [+]

    Pod 模板允許你定義公共元資料(例如標籤,或新 Pod 名稱的模板)以及指定 Pod 的所需狀態。工作負載管理控制器使用 Pod 模板(嵌入在另一個物件中,例如 Deployment 或 StatefulSet)來定義和管理一個或多個Pod。當存在基於相同模板的多個 Pod 時,這些 Pod 稱為副本。儘管你可以直接建立 PodTemplate 物件,但很少需要這樣做。

  • 搶佔

    Kubernetes 中的搶佔邏輯有助於待處理的Pod透過驅逐該節點上現有的低優先順序 Pod 來找到合適的節點

    [+]

    如果 Pod 無法排程,排程器會嘗試搶佔低優先順序的 Pod,以便待處理的 Pod 能夠被排程。

  • 優先順序類

    優先順序類是為此類 Pod 分配的排程優先順序的命名類。

    [+]

    PriorityClass 是一個非名稱空間物件,將名稱對映到整數優先順序,用於 Pod。名稱在 metadata.name 欄位中指定,優先順序值在 value 欄位中。優先順序範圍從 -2147483648 到 1000000000(包含)。值越高表示優先順序越高。

  • 探測

    kubelet 對 Pod 中執行的容器週期性執行的檢查,該檢查將定義容器的狀態和健康狀況,並告知容器的生命週期。

    [+]

    要了解更多資訊,請閱讀容器探針

  • 代理

    在計算領域,代理是充當遠端服務中間人的伺服器。

    [+]

    客戶端與代理互動;代理將客戶端的資料複製到實際伺服器;實際伺服器回覆代理;代理將實際伺服器的回覆傳送給客戶端。

    kube-proxy 是在叢集中每個節點上執行的網路代理,它實現了 Kubernetes Service 概念的一部分。

    你可以將 kube-proxy 作為普通的宿主空間代理服務執行。如果你的作業系統支援,你可以選擇以混合模式執行 kube-proxy,以更少的系統資源實現相同的整體效果。

  • QoS 等級

    QoS 等級 (Quality of Service Class) 提供了一種方式,讓 Kubernetes 將叢集中的 Pod 分類為幾個等級,並對排程和驅逐做出決策。

    [+]

    Pod 的 QoS 等級在建立時根據其基礎設施資源請求和限制設定。QoS 等級用於對 Pod 的排程和驅逐做出決策。Kubernetes 可以為 Pod 分配以下 QoS 等級之一:Guaranteed(保障型)、Burstable(爆發型)或 BestEffort(盡力而為型)。

  • 數量

    使用SI字尾表示大或小的整數。

    [+]

    數量是使用緊湊的整數表示法和 SI 字尾來表示大或小數字。小數使用毫單位表示,而大數可以使用千、兆或吉單位表示。

    例如,數字 1.5 表示為 1500m,而數字 1000 可以表示為 1k1000000 表示為 1M。你還可以指定二進位制表示法字尾;數字 2048 可以寫為 2Ki

    接受的十進位制(10 的冪)單位是 m(毫)、k(千,特意小寫)、M(兆)、G(吉)、T(太)、P(拍)、E(艾)。

    接受的二進位制(2 的冪)單位是 Ki(kibi)、Mi(mebi)、Gi(gibi)、Ti(tebi)、Pi(pebi)、Ei(exbi)。

  • RBAC (基於角色的訪問控制)

    管理授權決策,允許管理員透過 Kubernetes API 動態配置訪問策略。

    [+]

    RBAC 利用四種 Kubernetes 物件

    角色
    在特定名稱空間中定義許可權規則。
    ClusterRole
    在叢集範圍內定義許可權規則。
    RoleBinding
    在特定名稱空間中向一組使用者授予角色中定義的許可權。
    ClusterRoleBinding
    在叢集範圍內向一組使用者授予角色中定義的許可權。

    更多資訊請參見 RBAC

  • 副本

    一個Pod或一組 Pod 的副本或複製品。副本透過維護多個相同的 Pod 例項來確保高可用性、可伸縮性和容錯性。

    [+]

    副本通常在 Kubernetes 中用於實現所需的應用程式狀態和可靠性。它們可以在叢集中的多個節點上進行工作負載擴縮和分發。

    透過在 Deployment 或 ReplicaSet 中定義副本數量,Kubernetes 確保指定數量的例項正在執行,並根據需要自動調整數量。

    副本管理允許在 Kubernetes 叢集中實現高效的負載均衡、滾動更新和自愈能力。

  • 副本集

    一個副本集(旨在)在任何給定時間保持一組副本 Pod 執行。

    [+]

    Deployment 等工作負載物件利用 ReplicaSet 來確保根據該 ReplicaSet 的規範,叢集中執行著配置數量的Pod

  • ReplicationController

    一個工作負載管理物件,管理一個複製的應用程式,確保指定數量的Pod例項正在執行。

    [+]

    控制平面確保定義數量的 Pod 正在執行,即使有些 Pod 失敗,手動刪除 Pod,或者意外啟動過多 Pod。

  • 資源(基礎設施)

    提供給一個或多個節點的能力(CPU、記憶體、GPU 等),並可供執行在這些節點上的Pod使用。

    Kubernetes 也使用“資源”一詞來描述API 資源

    [+]

    計算機提供基本的硬體設施:處理能力、儲存記憶體、網路等。這些資源具有有限的容量,以適用於該資源的單位(CPU 數量、記憶體位元組等)進行衡量。Kubernetes 抽象了常見的資源,用於分配給工作負載,並利用作業系統原語(例如,Linux cgroups)來管理工作負載的消耗。

    你還可以使用動態資源分配來自動管理複雜的資源分配。

  • 資源宣告

    描述工作負載所需的資源,例如裝置。ResourceClaim 在動態資源分配 (DRA) 中用於為 Pod 提供特定資源的訪問許可權。

    [+]

    ResourceClaim 可以由工作負載操作員建立,也可以由 Kubernetes 根據ResourceClaimTemplate生成。

  • ResourceClaimTemplate

    定義一個模板,Kubernetes 使用該模板建立資源宣告。ResourceClaimTemplate 用於動態資源分配 (DRA),以提供每個 Pod 對獨立、相似資源的訪問

    [+]

    當工作負載規範中引用 ResourceClaimTemplate 時,Kubernetes 會根據模板自動建立 ResourceClaim 物件。每個 ResourceClaim 都繫結到一個特定的 Pod。當 Pod 終止時,Kubernetes 會刪除相應的 ResourceClaim。

  • 資源配額

    一個物件,用於限制每個名稱空間的聚合資源消耗。

    [+]

    資源配額可以限制某個名稱空間中可建立的API 資源數量,也可以限制代表該名稱空間(及其中的物件)可能消耗的基礎設施資源總量。

  • 資源切片

    表示一個或多個基礎設施資源,例如連線到節點的裝置。驅動程式在叢集中建立和管理 ResourceSlice。ResourceSlice 用於動態資源分配 (DRA)

    [+]

    當建立資源宣告時,Kubernetes 使用 ResourceSlice 查詢可以訪問滿足該宣告的資源的節點。Kubernetes 將資源分配給 ResourceClaim,並將 Pod 排程到可以訪問該資源的節點上。

  • 評審者

    在專案某些部分評審程式碼質量和正確性的人。

    [+]

    評審者對程式碼庫和軟體工程原則都非常瞭解。評審者狀態限定在程式碼庫的一部分。

  • 密文

    儲存敏感資訊,例如密碼、OAuth 令牌和 SSH 金鑰。

    [+]

    密文讓你對敏感資訊的使用方式有更多控制權,並降低意外洩露的風險。密文值以 base64 字串編碼,預設情況下未加密儲存,但可以配置為靜態加密

    一個Pod可以透過多種方式引用 Secret,例如作為卷掛載或作為環境變數。Secret 旨在用於機密資料,而ConfigMaps旨在用於非機密資料。

  • 安全上下文

    securityContext 欄位定義了Pod容器的許可權和訪問控制設定。

    [+]

    securityContext 中,你可以定義:程序執行的使用者、程序執行的組以及許可權設定。你還可以配置安全策略(例如:SELinux、AppArmor 或 seccomp)。

    PodSpec.securityContext 設定適用於 Pod 中的所有容器。

  • 選擇器

    允許使用者根據標籤過濾API 資源列表。

    [+]

    在查詢資源列表時應用選擇器,以按標籤對其進行過濾。

  • 服務

    一種暴露執行在叢集中一個或多個Pod上的網路應用程式的方法。

    [+]

    Service 所針對的 Pod 集合(通常)由選擇器決定。如果新增或移除更多 Pod,匹配選擇器的 Pod 集合將發生變化。Service 確保網路流量可以定向到工作負載當前的 Pod 集合。

    Kubernetes Service 要麼使用 IP 網路(IPv4、IPv6 或兩者),要麼引用域名系統 (DNS) 中的外部名稱。

    Service 抽象啟用了其他機制,例如 Ingress 和 Gateway。

  • 服務目錄

    一箇舊的擴充套件 API,允許在 Kubernetes 叢集中執行的應用程式輕鬆使用外部託管軟體服務,例如雲提供商提供的資料儲存服務。

    [+]

    它提供了一種列出、供應和繫結外部託管服務的方式,而無需詳細瞭解這些服務的建立或管理方式。

  • ServiceAccount

    為執行在Pod中的程序提供身份。

    [+]

    當 Pod 內部的程序訪問叢集時,它們會由 API 伺服器以特定的服務賬號進行身份驗證,例如 default。當你建立一個 Pod 時,如果你沒有指定服務賬號,它會自動被分配到同一名稱空間中的預設服務賬號。

  • 隨機分片

    一種將請求分配給佇列的技術,比雜湊取模佇列數提供更好的隔離。

    [+]

    我們經常需要隔離不同的請求流,以防止高強度流擠佔低強度流。一種簡單的將請求放入佇列的方法是,對請求的一些特性進行雜湊,然後對佇列數量取模,以獲得要使用的佇列索引。雜湊函式將與流對齊的請求特性作為輸入。例如,在網際網路中,這通常是源地址和目的地址、協議以及源埠和目的埠組成的五元組。

    這種簡單的基於雜湊的方案有一個特點,即任何高強度流都會擠佔所有雜湊到同一佇列的低強度流。為大量流提供良好隔離需要大量佇列,這會帶來問題。隨機分片是一種更靈活的技術,可以更好地隔離低強度流和高強度流。隨機分片的術語採用了從一副牌中發牌的隱喻;每個佇列都是一張隱喻的牌。隨機分片技術首先對識別流的請求特性進行雜湊,生成一個幾十位或更多位的雜湊值。然後將該雜湊值作為熵源來洗牌併發牌(佇列)。檢查所有發出的佇列,並將請求放入其中長度最短的一個。使用適度的手牌大小,檢查所有發出的牌的成本不高,並且給定的低強度流很有可能避開給定高強度流的影響。如果手牌大小很大,檢查發出的佇列的成本很高,並且低強度流更難避開一組高強度流的集體影響。因此,應慎重選擇手牌大小。

  • 邊車容器

    一個或多個通常在任何應用程式容器執行之前啟動的容器

    [+]

    邊車容器與普通應用容器類似,但用途不同:邊車為主要應用容器提供 Pod 本地服務。與初始化容器不同,邊車容器在 Pod 啟動後繼續執行。

    閱讀邊車容器瞭解更多資訊。

  • SIG(特別興趣小組)

    社群成員,他們共同管理更大的 Kubernetes 開源專案中的一個持續性部分或方面。

    [+]

    SIG 成員對推進特定領域(例如架構、API 機制或文件)有著共同的興趣。SIG 必須遵循 SIG 治理指南,但可以有自己的貢獻策略和溝通渠道。

    有關更多資訊,請參閱 kubernetes/community 倉庫和當前的 SIG 和工作組列表

  • Spec

    定義了每個物件(如 Pods 或 Services)應如何配置及其所需狀態。

    [+]

    幾乎所有 Kubernetes 物件都包含兩個巢狀物件欄位來管理物件的配置:物件 spec 和物件 status。對於具有 spec 的物件,你必須在建立物件時設定此項,提供你希望資源具有的特徵描述:即其所需狀態。

    它因不同物件(如 Pods、StatefulSets 和 Services)而異,詳細說明了容器、卷、副本、埠以及其他特定於每個物件型別的設定。此欄位封裝了 Kubernetes 應為已定義物件維護的狀態。

  • StatefulSet

    管理一組Pod的部署和擴縮,並保證這些 Pod 的順序性和唯一性

    [+]

    Deployment類似,StatefulSet 管理基於相同容器規範的 Pod。與 Deployment 不同,StatefulSet 為其每個 Pod 維護一個穩定的身份。這些 Pod 從相同的規範建立,但不可互換:每個 Pod 都具有一個持久識別符號,並在任何重新排程後保持不變。

    如果你想使用儲存卷為你的工作負載提供永續性,你可以將 StatefulSet 作為解決方案的一部分。儘管 StatefulSet 中的單個 Pod 容易失敗,但持久的 Pod 識別符號使得將現有卷與替代失敗 Pod 的新 Pod 匹配變得更容易。

  • 靜態 Pod

    由特定節點上的kubelet守護程序直接管理的Pod

    [+]

    而無需 API 伺服器的觀察。

    靜態 Pod 不支援臨時容器

  • StorageClass

    StorageClass 為管理員提供了一種描述不同可用儲存型別的方式。

    [+]

    StorageClass 可以對映到服務質量級別、備份策略或由叢集管理員確定的任意策略。每個 StorageClass 都包含 provisionerparametersreclaimPolicy 欄位,這些欄位在需要動態供應屬於該類的持久卷時使用。使用者可以使用 StorageClass 物件的名稱請求特定類。

  • sysctl

    sysctl 是一個半標準化的介面,用於讀取或更改正在執行的 Unix 核心的屬性。

    [+]

    在類 Unix 系統上,sysctl 既是管理員用於檢視和修改這些設定的工具名稱,也是該工具使用的系統呼叫。

    容器執行時和網路外掛可能依賴於以特定方式設定的 sysctl 值。

  • 汙點

    一個核心物件,由三個必需屬性組成:鍵、值和效果。汙點阻止將Pod排程到節點或節點組上。

    [+]

    汙點和容忍度協同工作,以確保 Pod 不被排程到不合適的節點上。一個或多個汙點應用於節點。節點應僅排程具有與配置汙點匹配的容忍度的 Pod。

  • 容忍度

    一個核心物件,由三個必需屬性組成:鍵、值和效果。容忍度允許將 Pod 排程到具有匹配汙點的節點或節點組上。

    [+]

    容忍度與汙點協同工作,以確保 Pod 不被排程到不合適的節點上。一個或多個容忍度應用於一個Pod。容忍度表示該Pod被允許(但不是必需)排程到具有匹配汙點的節點或節點組上。

  • UID

    Kubernetes 系統生成的字串,用於唯一標識物件。

    [+]

    在 Kubernetes 叢集的整個生命週期中,建立的每個物件都具有唯一的 UID。它旨在區分相似實體的歷史出現。

  • 上游(消歧義)

    可能指:核心 Kubernetes 或倉庫被分叉的源倉庫。

    [+]
    • Kubernetes 社群中:對話中通常用上游來指代核心 Kubernetes 程式碼庫,通用生態系統、其他程式碼或第三方工具都依賴於它。例如,社群成員可能會建議將某個功能移至上游,使其成為核心程式碼庫的一部分,而不是外掛或第三方工具。
    • GitHubgit 中:約定是將源倉庫稱為上游,而被分叉的倉庫則被視為下游
  • 使用者名稱空間

    模擬 root 的核心功能。用於“無 root 容器”。

    [+]

    使用者名稱空間是 Linux 核心的一個功能,允許非 root 使用者模擬超級使用者(“root”)許可權,例如,在容器外部無需成為超級使用者即可執行容器。

    使用者名稱空間在緩解潛在容器逃逸攻擊的損害方面是有效的。

    在使用者名稱空間的上下文中,名稱空間是 Linux 核心的一項功能,而不是 Kubernetes 意義上的名稱空間

  • 一個目錄,包含資料,可供Pod中的容器訪問。

    [+]

    Kubernetes 卷的生命週期與包含它的 Pod 相同。因此,卷的生命週期比 Pod 中執行的任何容器都長,並且卷中的資料在容器重啟後仍會保留。

    有關更多資訊,請參見儲存

  • 卷外掛

    卷外掛支援在Pod中整合儲存。

    [+]

    卷外掛允許你連線和掛載儲存卷以供Pod使用。卷外掛可以是樹內樹外樹內外掛是 Kubernetes 程式碼倉庫的一部分,並遵循其釋出週期。樹外外掛是獨立開發的。

  • 監控(Watch)

    用於以流的形式跟蹤 Kubernetes 中物件變化的動詞。它用於高效地檢測變化。

    [+]

    用於以流的形式跟蹤 Kubernetes 中物件變化的動詞。監控允許高效地檢測變化;例如,如果一個控制器需要知道 ConfigMap 何時發生變化,可以使用監控而不是輪詢。

    有關更多資訊,請參見API 概念中高效檢測變化

  • WG(工作組)

    促進委員會、SIG 或跨 SIG 工作的短期、狹窄或解耦專案的討論和/或實施。

    [+]

    工作組是組織人員完成離散任務的一種方式。

    有關更多資訊,請參閱 kubernetes/community 倉庫和當前的 SIG 和工作組列表

  • 工作負載

    工作負載是在 Kubernetes 上執行的應用程式。

    [+]

    表示不同型別或部分工作負載的各種核心物件包括 DaemonSet、Deployment、Job、ReplicaSet 和 StatefulSet 物件。

    例如,具有 Web 伺服器和資料庫的工作負載可能會在一個StatefulSet 中執行資料庫,並在一個Deployment 中執行 Web 伺服器。

上次修改時間:2024 年 4 月 20 日下午 7:09 PST:為 vanilla Docsy 準備術語表頁面 (2f3602cef0)