Linux 核心版本需求

許多功能仰賴特定的核心功能,並且具有最低核心版本需求。然而,僅僅依賴核心版本號碼對於某些作業系統發行版可能不足夠,因為 RHEL、Ubuntu 和 SUSE 等發行版的維護者經常將選定的功能向後移植到較舊的核心版本(保留較舊的核心版本)。

Pod sysctls

在 Linux 上,sysctl() 系統呼叫會在執行階段配置核心參數。有一個名為 sysctl 的命令列工具,您可以使用它來配置這些參數,並且許多參數透過 proc 檔案系統公開。

某些 sysctl 僅在您擁有足夠新的核心時才可用。

以下 sysctl 具有最低核心版本需求,並且在安全集合中受到支援

  • net.ipv4.ip_local_reserved_ports (自 Kubernetes 1.27 起,需要核心 3.16+);
  • net.ipv4.tcp_keepalive_time (自 Kubernetes 1.29 起,需要核心 4.5+);
  • net.ipv4.tcp_fin_timeout (自 Kubernetes 1.29 起,需要核心 4.6+);
  • net.ipv4.tcp_keepalive_intvl (自 Kubernetes 1.29 起,需要核心 4.5+);
  • net.ipv4.tcp_keepalive_probes (自 Kubernetes 1.29 起,需要核心 4.5+);
  • net.ipv4.tcp_syncookies (自核心 4.6+ 起命名空間化)。
  • net.ipv4.tcp_rmem (自 Kubernetes 1.32 起,需要核心 4.15+)。
  • net.ipv4.tcp_wmem (自 Kubernetes 1.32 起,需要核心 4.15+)。
  • net.ipv4.vs.conn_reuse_mode (在 ipvs 代理模式中使用,需要核心 4.1+);

kube proxy nftables 代理模式

對於 Kubernetes 1.32,kube-proxy 的 nftables 模式需要 1.0.1 或更高版本的 nft 命令列工具,以及核心 5.13 或更高版本。

為了測試/開發目的,如果您在 kube-proxy 組態中設定 nftables.skipKernelVersionCheck 選項,則可以使用舊版核心,最早可追溯到 5.4。但這不建議在生產環境中使用,因為它可能會導致系統上其他 nftables 使用者出現問題。

版本 2 控制群組

從 Kubernetes v1.31 開始,Kubernetes cgroup v1 支援處於維護模式;建議使用 cgroup v2。在 Linux 5.8 中,系統層級的 cpu.stat 檔案已新增至根 cgroup 以方便使用。

在 runc 文件中,由於缺少 freezer,不建議使用舊於 5.2 的核心。

其他核心需求

某些功能可能依賴新的核心功能,並且具有特定的核心需求

  1. 遞迴唯讀掛載:這是透過使用 Linux 核心 v5.12 中新增的 mount_setattr(2) 以 AT_RECURSIVE 標誌套用 MOUNT_ATTR_RDONLY 屬性來實作的。
  2. 根據 KEP-127,Pod 使用者命名空間支援需要最低核心版本 6.5+。
  3. 對於節點系統交換,在核心 6.3 之前不支援設定為 noswap 的 tmpfs。

Linux 核心長期維護

作用中的核心版本可以在 kernel.org 中找到。

通常會提供多個長期維護核心版本,目的是為較舊的核心樹系向後移植錯誤修正。只有重要的錯誤修正才會套用到此類核心,而且它們通常不會看到非常頻繁的發行版本,尤其是對於較舊的樹系。請參閱 Linux 核心網站,以取得長期類別中的發行版本清單

下一步

此頁面上的項目參考協力廠商產品或專案,這些產品或專案提供 Kubernetes 所需的功能。Kubernetes 專案作者不對這些協力廠商產品或專案負責。請參閱 CNCF 網站指南以取得更多詳細資訊。

在提出新增額外協力廠商連結的變更之前,您應該閱讀內容指南

上次修改時間為 2024 年 9 月 20 日上午 11:36 PST:sync safe sysctl ipv4.rmen and ipv4.wmem for v1.32 (de6ead9316)