View a markdown version of this page

檢閱標準支援 Kubernetes 版本的版本備註 - Amazon EKS

協助改進此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

檢閱標準支援 Kubernetes 版本的版本備註

提示

註冊即將舉行的 Amazon EKS 研討會。

本主題提供標準支援的每個 Kubernetes 版本需要注意的重要變更。於升級時,請仔細檢閱叢集舊版和新版本之間發生的變更。

Kubernetes 1.37

Kubernetes 1.37 現已可在 Amazon EKS 中使用。如需 Kubernetes 1.37 的詳細資訊,請參閱官方版本公告。

重要
  • 預設啟用 SELinux 掛載標籤 (GA):在 Kubernetes 1.37 中,此功能預設為SELinuxMount啟用。當 Pod 設定 seLinuxOptions及其磁碟區的 CSI 驅動程式設定 時seLinuxMount: true, kubelet 會使用 掛載磁碟區mount -o context=<label>,而不是重新標記每個檔案。掛載只能包含一個 SELinux 標籤,因此ContainerCreating如果相同節點上的另一個 Pod 已使用具有不同 SELinux 標籤、不同 或不同權限層級的相同磁碟區seLinuxChangePolicy,則 Pod 會保持在 中。未啟用 SELinux 的節點不會受到影響。

    • 必要動作:升級之前,請執行 kubectl get csidriver -o custom-columns=NAME:.metadata.name,SELINUXMOUNT:.spec.seLinuxMount以使用 尋找驅動程式seLinuxMount: true。對於來自這些驅動程式的磁碟區,尋找設定seLinuxOptions和共用磁碟區的 Pod。共用磁碟區的 Pod 必須使用相同的 seLinuxOptions.level和 seLinuxChangePolicy。如果特權 Pod 和無特權 Pod 共用磁碟區,請在無特權 Pod spec.securityContext.seLinuxChangePolicy: Recursive上設定 。 會Recursive保留先前的重新標記行為;將其套用至共用磁碟區的所有 Pod。如需詳細資訊,請參閱 SELinux 磁碟區標籤變更進入 GA (以及 v1.37 中可能的影響) 和 KEP-1710。

  • EKS Auto Mode Consolidation 預設:從 Kubernetes 1.37 開始,新的 EKS Auto Mode NodePools未指定consolidationPolicy預設值為 Balanced而非 WhenEmptyOrUnderutilized。 Balanced通常會以大約相同的成本減少 Pod 移出。內建 general-purpose和 system NodePools 也使用 Balanced,您無法變更這些設定。如需詳細資訊,請參閱 EKS Auto Mode 版本備註。

    • 必要動作:若要保留特定的合併行為,請在您自己的 NodePools 上consolidationPolicy明確設定 。如果工作負載需要先前的行為,請將設定 的 NodePool 設為目標consolidationPolicy: WhenEmptyOrUnderutilized。

  • 動態資源配置 (DRA) 裝置污點和容錯 (穩定):DRA 驅動程式和叢集管理員可以污點裝置,例如 GPUs,因此排程器不會將它們配置給不容忍污點的 Pod。在 EKS 上使用 DRA 需要安裝 EKS 未安裝的 DRA 驅動程式。Karpenter 靜態容量、EKS 受管節點群組和自我管理節點支援 NVIDIA DRA 驅動程式。EKS Auto Mode 不支援此功能。使用 EKS Auto 模式或 Karpenter 動態容量佈建時,請使用 NVIDIA 裝置外掛程式。

  • Horizontal Pod Autoscaler Configurable Tolerance (Stable):您可以分別針對擴展和縮減設定每個 HPA 的公差,而不是僅依賴整個叢集的預設值 10%。

  • 水平 Pod Autoscaler 擴展至零 (Beta):HPAScaleToZero功能閘道預設為在 Kubernetes 1.37 中啟用。對物件或外部指標進行擴展的 HPA 可以設定為minReplicas: 0在閒置時擴展到零 Pod,並在需求傳回時擴展到備份。物件和外部指標需要 EKS 不會安裝的指標轉接器。

  • Kubelet 組態變更:如果已設定棄用的 cAdvisor 旗標 ( 除外--housekeeping-interval)container_cpu_load_d_average_10s、捨棄 container_cpu_load_average_10s、 和 container_tasks_state指標,且 eventRecordQPS: 0 視為沒有限制,則 kubelet 不會再啟動。先前已eventRecordQPS: 0套用每秒 5 個事件的限制。EKS 最佳化 AMIs 不會設定已棄用的 cAdvisor 旗標或 eventRecordQPS,因此其 kubelet 啟動和速率限制保持不變。移除的指標會影響任何 AMI 上抓取它們的任何人。

    • 必要動作:如果您使用自訂 AMIs 或額外的 kubelet 引數,請移除已取代的 cAdvisor 旗標,如果您設定 eventRecordQPS: 0,請將其變更為 5 以保留先前的速率限制。更新任何使用已移除指標的儀表板或提醒。如需詳細資訊,請參閱 kubelet 組態 (v1beta1) 參考。

  • Kubelet 會在啟動時記錄其組態:Kubelet 現在會在啟動時記錄其完整的有效組態。確保只有信任的使用者才能讀取節點日誌。如需詳細資訊,請參閱 kubernetes/kubernetes#139837。

  • 適用於 Amazon EC2 G7 執行個體的 NVIDIA 驅動程式 595:G7 執行個體需要 NVIDIA 驅動程式 595。EKS 最佳化 Amazon Linux 2023 NVIDIA AMIs 在所有支援的版本上都包含驅動程式 595; Bottlerocket NVIDIA AMIs Kubernetes 1.37 和更新版本上包含驅動程式 595。

如需完整的 Kubernetes 1.37變更日誌,請參閱 https://https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.37.md

Kubernetes 1.36

Kubernetes 1.36 現已可在 Amazon EKS 中使用。如需 Kubernetes 1.36 的詳細資訊,請參閱官方版本公告。

重要
  • gitRepo 磁碟區移除:在 Kubernetes 1.36 中永久停用磁碟gitRepo區類型,無法重新啟用。Kubernetes API 仍然接受具有gitRepo磁碟區的 Pod,但 kubelet 會拒絕執行它們並傳回錯誤。

  • SELinux 磁碟區標籤變更 (GA):在 Kubernetes 1.36 中,較快的 SELinux 磁碟區標籤會預設為所有磁碟區,使用 mount -o context 而非遞迴檔案重新標籤。在特殊權限和非特殊權限 Pod 之間或在具有不同 SELinux 標籤的 Pod 之間共用相同節點上的磁碟區可能會導致問題。Kubernetes 1.37 預設會ContainerCreating啟用可在 中保留 Pod 的相關SELinuxMount行為,而非 1.36。升級之前,請檢閱 Kubernetes 1.37 區段。

  • 依預設啟用嚴格 IP/CIDR 驗證:功能StrictIPCIDRValidation閘道現在預設為針對內建 API 類型啟用。API 欄位不再接受具有外部前導零 (例如,010.000.000.005而非 10.0.0.5) 的 IP 或 CIDR 值,或具有不明確語意 (例如,192.168.0.5/24而非 192.168.0.0/24) 的 CIDR 值。現有的儲存物件會透過驗證追逐保留,但新建立和更新將被拒絕。這不適用於自訂資源類型。

    • 必要動作:檢閱資訊清單、Helm Chart 和包含前導零或非正式 CIDR 表示法的 IP 地址自動化。升級之前,請更新它們以使用正式格式。如需詳細資訊,請參閱 KEP-4858。

  • User Namespaces (Stable):User Namespaces 透過將容器的根使用者映射到主機上的非特殊權限使用者來提供defense-in-depth,確保容器細分不會授予節點的管理能力。

  • 資源運作狀態 (Beta):以 Pod 狀態報告每個裝置的運作狀態,讓操作員判斷當機迴圈是由於運作狀態不佳或不明的裝置狀態,而非應用程式問題。適用於裝置外掛程式和動態資源配置。

    • 如需詳細資訊,請參閱 KEP-4680。

  • 動態資源配置功能 (Beta):數個 DRA 功能現在預設為啟用:可分割裝置和消耗容量,用於更精細地共用 GPUs 等硬體,以及裝置繫結條件,用於在排程之前進行徹底的裝置準備度檢查。

  • 棄用通知 — 服務 externalIPs:服務中的 externalIPs 欄位.spec已在 Kubernetes 1.36 中棄用。建立或更新使用此欄位的 服務時,您會看到棄用警告。Kubernetes 1.43 計劃完全移除。使用 的客戶externalIPs應遷移至 LoadBalancer Services、NodePort 或 Gateway API。如需詳細資訊,請參閱 KEP-5707。

如需完整的 Kubernetes 1.36變更日誌,請參閱 https://https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.36.md

Kubernetes 1.35

Kubernetes 1.35 現已可在 Amazon EKS 中使用。如需 Kubernetes 1.35 的詳細資訊,請參閱官方版本公告。

重要
  • Cgroup v1 支援已移除:Kubernetes 1.35 取代 cgroup v1 支援,這表示 kubelet 預設會拒絕在使用 cgroup v1 的節點上啟動。

    • AL2023:AL2023 預設使用 cgroup v2,並與 Kubernetes 上游行為保持一致。

      • 必要動作:手動設定 AL2023 使用 cgroup v1 的客戶必須遷移至 cgroups v2 或手動failCgroupV1: false設定 kubelet 組態。

    • Bottlerocket:根據預設, Bottlerocket 1.35 會使用 cgroup v2,但 kubelet 組態failCgroupV1: false中會設定 ,以維持回溯相容性。

    • Fargate:Fargate 繼續使用 cgroup v1。

  • Containerd 1.x 終止支援:Kubernetes 1.35 是支援 Containerd 1.x 的最後一個版本。您必須先切換至容器化 2.0 或更新版本,才能升級至下一個 Kubernetes 版本。

  • 2026 年 3 月,上游 Kubernetes 專案將淘汰 Ingress NGINX,這是許多 Kubernetes 環境的關鍵基礎設施元件。

    • 必要動作:EKS 客戶應評估他們是否依賴輸入 NGINX,並開始規劃遷移到閘道 API 或第三方輸入控制器等替代方案,因為淘汰後不會再發佈錯誤修正、安全修補程式或更新。現有的部署將繼續運作,但在淘汰後繼續使用 Ingress NGINX 會讓您的環境面臨安全風險,因為沒有任何可用的替代方案是直接插入取代,而且需要規劃和工程時間。如需此 Kubernetes 公告的詳細資訊,請參閱 Kubernetes 指導和安全回應委員會傳入 NGINX 淘汰的官方陳述式。

  • 就地 Pod 資源更新 (穩定):就地 Pod 資源更新可讓使用者調整 CPU 和記憶體資源,而無需重新啟動 Pod 或容器。先前,這類修改需要重新建立 Pod,這可能會中斷工作負載,特別是對於有狀態或批次的應用程式。新的就地功能允許更順暢、不中斷的垂直擴展、提高效率,也可以簡化開發。

  • PreferSameNode 流量分佈 (穩定):已更新 服務trafficDistribution的欄位,以更明確地控制流量路由。已推出新選項 PreferSameNode,以允許服務在可用時嚴格排定本機節點上端點的優先順序,否則會回到遠端端點。此變更可讓 API 更明確地偏好目前節點內的流量。

  • StatefulSet MaxUnavailable (Beta):此功能可透過設定 maxUnavailable(例如 3 或 10%) 來啟用平行 Pod 更新,讓資料庫叢集等具狀態應用程式比循序one-at-a-time更新最多快 60%,大幅減少維護時段。

  • Windows Server 2025 支援:EKS 1.35 新增對 Windows Server 2025 的支援。

  • Kubelet 標記移除:已從 kubelet 移除--pod-infra-container-image標記。自訂 AMI 使用者必須先從 kubelet 組態中移除此旗標,才能升級至 1.35。

  • 棄用通知 - IPVS 模式:kube-proxy 中的 IPVS 模式已棄用,並將在未來的 Kubernetes 版本中移除。遷移至 nftables 模式。如需詳細資訊,請參閱在 nftables 模式下執行 kube-proxy。

如需完整的 Kubernetes 1.35變更日誌,請參閱 https://https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.35.md

Kubernetes 1.34

Kubernetes 1.34 現已可在 Amazon EKS 中使用。如需 Kubernetes 1.34 的詳細資訊,請參閱官方版本公告。

重要
  • 容器已更新至 1.34 版中的 2.1 以啟動。

  • AWS 未發佈適用於 Kubernetes 1.34 的 EKS 最佳化 Amazon Linux 2 AMI。

  • AppArmor 在 Kubernetes 1.34 中已棄用。

  • VolumeAttributesClass (VAC) 在 Kubernetes 1.34 中畢業至 GA,從 Beta API (storage.k8s.io/v1beta1) 遷移至穩定的 API (storage.k8s.io/v1)。

    • 如果您使用 EBS CSI 驅動程式搭配受管附屬容器 AWS(來自 ECR Gallery 上的 CSI 元件),磁碟區修改將繼續在 EKS 1.31-1.33 叢集上順暢運作。 AWS 將修補附屬項目以支援 Beta VAC APIs,直到 EKS 1.33 標準支援結束 (2026 年 7 月 29 日)。

    • 如果您自行管理 CSI 附屬容器,您可能需要鎖定至 1.34 版之前的叢集上的較舊附屬版本,以維護 VAC 功能。

    • 若要使用 GA VolumeAttributesClass 功能 (例如修改轉返),請升級至 EKS 1.34 或更新版本。

  • 外部 JWT Signer for Service 帳戶權杖已提升為 Beta 版。使用外部簽署者時,不再完全遵守 --service-account-extend-token-expiration 旗標。API 伺服器會強制執行所需延伸項目 (1 年) 與外部簽署者限制 (24 小時) 之間的最短過期時間。

  • 動態資源配置 (DRA) 核心 APIs (GA):動態資源配置已進入穩定狀態,可透過標準化配置界面有效率地管理 GPUs 等特殊硬體 - 簡化硬體加速器的資源管理並改善特殊資源的使用率。

  • 適用於 Kubelet (Beta) 的投影 ServiceAccount 權杖:此增強功能透過使用容器映像提取的短期憑證而非長期秘密來提高安全性 - 降低憑證暴露風險並增強叢集的整體安全狀態。

  • Pod 層級的資源請求和限制 (Beta):此功能允許多容器 Pod 的共用資源集區來簡化資源管理,為具有多個容器的複雜應用程式提供更有效率的資源配置和使用率。

  • 可變 CSI 節點可配置計數 (Beta):MutableCSINodeAllocatableCount特徵閘道預設為在 EKS 1.34 中啟用,使 CSINode 最大可連接磁碟區計數屬性可變,並引入根據 CSI 驅動程式層級的使用者組態動態更新的機制。這些更新可以透過定期間隔或故障偵測觸發,透過解決節點上報告和實際連接容量之間的不相符問題,增強具狀態 Pod 排程的可靠性。

  • 棄用通知 - cgroup 驅動程式組態:手動 cgroup 驅動程式組態已棄用,有利於自動偵測。

    • 客戶影響:如果您目前在 kubelet 組態中手動設定--cgroup-driver旗標,您應該準備移除此組態。

    • 必要動作:計劃更新節點引導指令碼和自訂 AMI 組態,以在功能在未來 Kubernetes 版本中移除之前移除手動 cgroup 驅動程式設定。

    • 如需詳細資訊,請參閱 cgroup 驅動程式文件。

如需完整的 Kubernetes 1.34變更日誌,請參閱 https://https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.34.md