檢閱 的版本備註 Kubernetes 延伸支援上的 版本 - Amazon EKS

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

檢閱 的版本備註 Kubernetes 延伸支援上的 版本

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

Kubernetes 1.27

Kubernetes 1.27 現已在 Amazon EKS 中提供。如需關於 Kubernetes 1.27,請參閱官方版本公告

重要
  • 對 Alpha seccomp 註釋 seccomp.security.alpha.kubernetes.io/podcontainer.seccomp.security.alpha.kubernetes.io 註釋的支援已移除。Alpha seccomp 註釋已在 1.19 中棄用,在 1.27 中刪除後,seccomp 欄位將不再為包含 seccomp 註釋的 Pods 自動填入。請改為使用 PodssecurityContext.seccompProfile 欄位或容器來設定 seccomp 設定檔。若要檢查您是否在叢集中使用已棄用的 Alpha seccomp 註釋,請執行下列命令:

    kubectl get pods --all-namespaces -o json | grep -E 'seccomp.security.alpha.kubernetes.io/pod|container.seccomp.security.alpha.kubernetes.io'
  • 系統已移除 kubelet--container-runtime 命令行引數。Amazon EKS 的預設容器執行期自 containerd開始1.24,因此不需要指定容器執行期。從1.27一開始,Amazon EKS 會忽略傳遞至任何引導指令碼的--container-runtime引數。為了防止節點引導程序期間發生錯誤,請勿將此引數傳遞至 --kubelet-extra-args 。您必須移除所有節點建立工作流程和建置指令碼中的 --container-runtime 引數。

  • kubelet 中的 Kubernetes 1.27 已將預設值 提高kubeAPIQPS50,將預設值提高kubeAPIBurst100。這些增強功能可讓 kubelet處理更高數量的 API 查詢,進而改善回應時間和效能。當 Pods 的需求增加時,由於擴展要求,修改後的預設值可確保 kubelet 能有效管理增加的工作負載。因此,Pod 啟動速度更快,且叢集作業更有效率。

  • 您可以使用更精細的 Pod 拓撲來傳播政策,例如 minDomain。此參數可讓您指定 Pods 應傳播的網域數目下限。nodeAffinityPolicynodeTaintPolicy 則允許在管理 Pod 分佈中額外的細部程度。這是根據節點親和性、污點和 Pod’s 規格的 topologySpreadConstraints 之中的 matchLabelKeys 欄位而定。如此可允許在滾動升級之後選取 Pods 以供分攤計算之用。

  • Kubernetes 1.27 已提升為測試版,此為 StatefulSets 的新政策機制,可控制其 PersistentVolumeClaims (PVCs) 的生命週期。全新的 PVC 保留政策可讓您指定,當 StatefulSet 被刪除或 StatefulSet 中的複本縮減規模時,從 StatefulSet 規格範本產生的 PVCs 是否會自動刪除或保留。

  • 中的 goaway-chance 選項 Kubernetes 透過隨機關閉連線,API 伺服器有助於防止HTTP/2用戶端連線卡在單一 API 伺服器執行個體上。當連線關閉時,用戶端會嘗試重新連線,而且可能會因為負載平衡而落在不同的 API 伺服器上。Amazon EKS 版本1.27已啟用goaway-chance旗標。如果您在 Amazon EKS 叢集上執行的工作負載使用與 HTTP 不相容的用戶端GOAWAY,建議您在連線終止時重新連線GOAWAY,以更新用戶端來處理。

如需完整 Kubernetes 1.27 changelog,請參閱 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOGWord-1.27.md#changelog-since-v1260

Kubernetes 1.26

Kubernetes 1.26 現在可在 Amazon EKS 中使用。如需關於 Kubernetes 1.26,請參閱官方版本公告

重要

Kubernetes 1.26 不再支援 CRI v1alpha2。 如果容器執行期不支援,這會導致 kubelet 不再註冊節點 CRI v1。 這也表示 Kubernetes 1.26 不支援容器次要版本 1.5和更早版本。如果您使用的是 Containerd,您需要升級至 Containerd 版本 1.6.0或更新版本,才能將任何節點升級至 Kubernetes 1.26。 您也需要升級僅支援 的任何其他容器執行期v1alpha2。如需詳細資訊,請參閱容器執行期廠商。根據預設,Amazon Linux 以及 Bottlerocket AMIs包含容器版本 1.6.6

  • 升級至 之前 Kubernetes 1.26,升級您的 Amazon VPC CNI plugin for Kubernetes 至版本 1.12 或更新版本。如果您未升級至 Amazon VPC CNI plugin for Kubernetes 版本 1.12 或更新版本,Amazon VPC CNI plugin for Kubernetes 將會當機。如需詳細資訊,請參閱Amazon VPC CNI

  • 中的 goaway-chance 選項 Kubernetes 透過隨機關閉連線,API 伺服器有助於防止HTTP/2用戶端連線卡在單一 API 伺服器執行個體上。當連線關閉時,用戶端會嘗試重新連線,而且可能會因為負載平衡而落在不同的 API 伺服器上。Amazon EKS 版本1.26已啟用goaway-chance旗標。如果您在 Amazon EKS 叢集上執行的工作負載使用與 HTTP 不相容的用戶端GOAWAY,建議您在連線終止時重新連線GOAWAY,以更新用戶端來處理。

如需完整 Kubernetes 1.26 changelog,請參閱 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOGWord-1.26.md#changelog-since-v1250

Kubernetes 1.25

Kubernetes 1.25 現在可在 Amazon EKS 中使用。如需關於 Kubernetes 1.25,請參閱官方版本公告

重要
  • Amazon EC2 不支援 Amazon EKS P2執行個體,因為它們需要NVIDIA驅動程式 470 版或更早版本。

  • PodSecurityPolicy (PSP) 已在 中移除 Kubernetes 1.25. PSPs 已取代為 Pod Security Admission (PSA) 和 Pod Security Standards (PSS). PSA 是內建許可控制器,可實作 PSS 中概述的安全控制。PSA 以及 PSS 會在 中漸進到穩定 Kubernetes 1.25 和 預設會在 Amazon EKS 中啟用。如果您有 PSPs 在您的叢集中,請務必從 遷移 PSP 至內建 Kubernetes PSS 或 至 a policy-as-code 解決方案,然後再將叢集升級至版本 1.25。如果您不從 PSP 遷移,您可能會遇到工作負載中斷的情況。如需詳細資訊,請參閱從舊版 Pod 安全政策遷移 (PSP)

  • Kubernetes 版本1.25包含變更的 變更,可變更稱為 API Priority and Fairness (APF) 的現有功能的行為。APF 用於在提高請求磁碟區期間保護 API 伺服器免於潛在的過載。其作法是取代並行請求 (可在任何指定時間處理) 數量的限制。透過實施區隔明顯的優先順序層級並限制來自各種工作負載或使用者的請求,即可達成這個目標。此方法可確保關鍵應用程式或高優先順序請求獲得優惠待遇,同時防止低優先順序請求壓倒 API 伺服器。如需詳細資訊,請參閱中的API優先順序和公平性 Kubernetes 文件或 API 最佳實務指南中的 Word Priority and Fairness。 EKS

    這些更新已在 PR #10352PR #118601 中推出。先前,APF 會統一處理所有類型的請求,每個請求都會耗用單一單位的並行請求限制。由於這些LIST請求對 API 伺服器造成極大負擔,Word APF行為變更會將較高的並行單位指派給請求。API 伺服器估計由LIST請求傳回的物件數量。它會指派一個與傳回的物件數量成比例的並行單位。

    升級到 Amazon EKS 版本1.25或更高版本時,此更新的行為可能會導致具有繁重LIST請求 (先前運作沒有問題) 的工作負載遇到速率限制。這會以 HTTP 429 回應代碼表示。為了避免因 LIST 請求遭到速率限制而出現的潛在工作負載中斷,我們強烈建議您調整工作負載以降低這些請求的速率。或者,您可以透過調整 APF 設定來為基本請求配置更多容量,同時減少配置給非基本請求的容量來解決此問題。如需這些緩解技術的詳細資訊,請參閱 EKS 最佳實務指南中的防止捨棄請求

  • Amazon EKS 1.25包含叢集身分驗證的增強功能,其中包含更新的 YAML 程式庫。如果 YAML 在kube-system命名空間aws-authConfigMap中找到的 中的值以巨集開頭,其中第一個字元是捲曲支架,您應該在捲曲支架 (" ") 之前和之後新增引號 (){ }。這是必要的,以確保aws-iam-authenticator版本v0.6.3準確剖析 Amazon EKS aws-authConfigMap中的 1.25

  • 的 Beta API 版本 (discovery.k8s.io/v1beta1) EndpointSlice 已在 中取代 Kubernetes 1.21 和 自 起不再提供 Kubernetes 1.25。 此 API 已更新為 discovery.k8s.io/v1。如需詳細資訊,請參閱中的 EndpointSlice Kubernetes 文件中)。所以此 AWS Load Balancer Controller v2.4.6 和更早版本使用v1beta1端點與 通訊EndpointSlices。如果您使用 的EndpointSlices組態 AWS Load Balancer Controller,您必須升級至 AWS Load Balancer Controller v2.4.7 將 Amazon EKS 叢集升級至 1.25。如果您在使用 的EndpointSlices組態1.25時升級至 。 AWS Load Balancer Controller,控制器會當機並導致工作負載中斷。若要升級控制器,請參閱 使用 AWS Load Balancer控制器路由網際網路流量

  • 從 Kubernetes 開始,API 的 Beta HorizontalPodAutoscaler 版本 (autoscaling/v2beta1) 不再作為 Kubernetes 使用1.25。此 API 在版本 中已棄用1.23。遷移資訊清單和 API 用戶端以使用 autoscaling/v2 HorizontalPodAutoscaler API Word版本。如需詳細資訊,請參閱 Kubernetes 文件

  • SeccompDefault 在 中提升為 Beta Kubernetes 1.25。 當您設定 時設定--seccomp-default旗標kubelet,容器執行期會使用其RuntimeDefaultseccomp設定檔,而不是未受限的 (seccomp disabled) 模式。預設設定檔提供一組強大的安全性預設值,同時保留工作負載的功能。雖然有此旗標可用,但 Amazon EKS 預設不會啟用此旗標,因此 Amazon EKS 行為會有效保持不變。如果需要,您可以在節點上開始啟用此功能。如需詳細資訊,請參閱 中的教學課程限制容器的 Syscalls with seccomp Kubernetes 文件中)。

  • 支援 的容器執行期介面 (CRI) Docker (也稱為 dockershim) 已從 中移除 Kubernetes 1.24 和更新版本。Amazon EKS 官方中唯一的容器執行期 AMIs for Kubernetes 1.24 和更新後的叢集是 containerd。 在升級至 Amazon EKS 1.24或更新版本之前,請移除任何不再支援的引導指令碼旗標參考。如需詳細資訊,請參閱從 遷移dockershim至 containerd

  • 萬用字元查詢的支援已在 中取代 CoreDNS 1.8.7 並在 中移除 CoreDNS 1.9。 這是作為安全措施完成的。萬用字元查詢無法再運作並傳回 NXDOMAIN 而不是 IP 地址。

  • 中的 goaway-chance 選項 Kubernetes 透過隨機關閉連線,API 伺服器有助於防止HTTP/2用戶端連線卡在單一 API 伺服器執行個體上。當連線關閉時,用戶端會嘗試重新連線,而且可能會因為負載平衡而落在不同的 API 伺服器上。Amazon EKS 版本1.25已啟用goaway-chance旗標。如果您在 Amazon EKS 叢集上執行的工作負載使用與 HTTP 不相容的用戶端GOAWAY,建議您在連線終止時重新連線GOAWAY,以更新用戶端來處理。

如需完整 Kubernetes 1.25 changelog,請參閱 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOGWord-1.25.md#changelog-since-v1240

Kubernetes 1.24

Kubernetes 1.24 現在可在 Amazon EKS 中使用。如需關於 Kubernetes 1.24,請參閱官方版本公告

重要
  • 從 開始 Kubernetes 1.24,預設不會在叢集中啟用新的 Beta APIs。根據預設,現有的 Beta APIs 和現有 Beta APIs 的新版本會繼續啟用。Amazon EKS 遵循與上游相同的行為 Kubernetes 1.24。 預設會啟用控制新 Word 操作和現有 API 操作新功能的特徵閘道。這與上游一致 Kubernetes。 如需詳細資訊,請參閱 KEP-3136:Beta APIs預設為關閉 on GitHub。

  • 支援 的容器執行期介面 (CRI) Docker (也稱為 dockershim) 已從 中移除 Kubernetes 1.24。 Amazon EKS 官方 AMIs 具有 containerd 是唯一的執行時間。在移至 Amazon EKS 1.24或更高版本之前,您必須移除任何不再支援的引導指令碼旗標的參考。您還必須確定已為工作節點啟用 IP 轉送。如需詳細資訊,請參閱從 遷移dockershim至 containerd

  • 如果您已有 Fluentd 為 設定 Container Insights,然後您必須遷移 Fluentd 至 Fluent Bit 再更新叢集。所以此 Fluentd 剖析器設定為僅剖析 JSON 格式的日誌訊息。與 不同dockerdcontainerd容器執行期的日誌訊息不是 JSON 格式。如果您不遷移至 Fluent Bit,部分已設定的 Fluentd’s 剖析器會在 內產生大量錯誤 Fluentd 容器。如需遷移的詳細資訊,請參閱將 Fluent Bit 設定為 a DaemonSet 以將日誌傳送至 CloudWatch Logs

  • In (入) Kubernetes 1.23 及更早版本,使用無法驗證的 IP 和 DNS 主體別名 (SANs) kubelet提供憑證時,會自動使用無法驗證的 SANs 發出。這些無法驗證的 SANs 會從佈建的憑證中省略。在版本 1.24和更新版本的叢集中,如果無法驗證任何 SAN,則不會發出kubelet服務憑證。這樣可以防止 kubectl exec 和 kubectl 日誌命令運作。如需詳細資訊,請參閱將叢集升級至 之前考慮的憑證簽署 Kubernetes 1.24

  • 升級使用 的 Amazon EKS 1.23叢集時 Fluent Bit,您必須確保其正在執行 k8s/1.3.12 或更新版本。您可以重新套用最新的適用 Fluent Bit 來自 的 YAML 檔案 GitHub。 如需詳細資訊,請參閱 Amazon CloudWatch 使用者指南中的設定 Fluent Bit

  • 當叢集工作節點跨多個可用區域部署時,您可以使用拓撲感知提示來指出將流量保留在區域中的偏好設定。在區域內路由流量有助於降低成本並改善網路效能。根據預設,拓撲感知提示會在 Amazon EKS 中啟用1.24。如需詳細資訊,請參閱中的拓撲感知提示 Kubernetes 文件中)。

  • PodSecurityPolicy (PSP) 已排定在 中移除 Kubernetes 1.25. PSPs 正在以 Pod Security Admission (PSA) 取代。PSA 是內建許可控制器,使用 Pod 安全標準 (PSS) 中概述的安全控制項。PSA 和 PSS 都是 Beta 功能,預設會在 Amazon EKS 中啟用。若要解決移除 PSP 在版本 中1.25,建議您在 Amazon PSS 中實作 EKS。如需詳細資訊,請參閱 AWS 部落格上的在 Amazon EKS 中實作 Pod 安全標準

  • client.authentication.k8s.io/v1alpha1 ExecCredential 會在 中移除 Kubernetes 1.24。 ExecCredential API Word通常可在 中使用 Kubernetes 1.22。 如果您使用依賴 API v1alpha1 的 Client-go 憑證外掛程式,請聯絡外掛程式的經銷商,了解如何遷移至 v1 API。

  • 用於 Kubernetes 1.24,我們為上游 Cluster Autoscaler 專案提供了一項功能,可簡化 Amazon EKS 受管節點群組往返零節點的擴展。先前,若要讓 Cluster Autoscaler 了解已擴展至零節點之受管節點群組的資源、標籤和污點,您需要使用負責節點的詳細資訊標記基礎 Amazon EC2 Auto Scaling 群組。現在,當受管節點群組中沒有執行中的節點時,Cluster Autoscaler 會呼叫 Amazon EKS DescribeNodegroup API操作。此 API 操作提供 Cluster Autoscaler 對受管節點群組的資源、標籤和污點所需的資訊。此功能需要您將 eks:DescribeNodegroup 許可新增至 Cluster Autoscaler 服務帳戶 IAM 政策。當為 Amazon EKS 受管節點群組供電的 Auto Scaling 群組上的 Cluster Autoscaler 標籤值與節點群組本身發生衝突時,Cluster Autoscaler 會偏好 Auto Scaling 群組標籤的值。如此您便能根據需要覆蓋相關的值。如需詳細資訊,請參閱 Cluster Autoscaler

  • 如果您打算使用 Inferentia 或 Trainium 具有 Amazon EKS 的執行個體類型1.24,您必須升級至 AWS Neuron 裝置外掛程式 1.9.3.0 版或更新版本。如需詳細資訊,請參閱中的 Neuron K8 版本 【1.9.3.0】 AWS Neuron 文件。

  • Containerd IPv6已啟用 的 Pods,預設為 。它將節點核心設定套用至 Pod 網路命名空間。因此, 中的容器 Pod 綁定到 IPv4(127.0.0.1) 和 IPv6(::1) 回送地址。 IPv6是通訊的預設通訊協定。將叢集更新至版本 之前1.24,建議您測試多容器 Pods。 修改應用程式,以便它們可以繫結到循環介面上的所有 IP 地址。大多數程式庫都啟用 IPv6 繫結,這與 IPv4 向後相容。如果無法修改您的應用程式程式碼,則有兩種選擇:

    • 運行 init 容器並將 disable ipv6 設定為 true (sysctl -w net.ipv6.conf.all.disable_ipv6=1)。

    • 設定靜音許可 Webhook,將init容器與應用程式一起插入 Pods.

    如果您需要IPv6封鎖所有 Pods 在所有節點之間,您可能需要IPv6停用執行個體。

  • 中的 goaway-chance 選項 Kubernetes 透過隨機關閉連線,API 伺服器有助於防止HTTP/2用戶端連線卡在單一 API 伺服器執行個體上。當連線關閉時,用戶端會嘗試重新連線,而且可能會因為負載平衡而落在不同的 API 伺服器上。Amazon EKS 版本1.24已啟用goaway-chance旗標。如果您在 Amazon EKS 叢集上執行的工作負載使用與 HTTP 不相容的用戶端GOAWAY,建議您在連線終止時重新連線GOAWAY以更新用戶端來處理。

如需完整 Kubernetes 1.24 changelog,請參閱 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOGWord-1.24.md#changelog-since-v1230

Kubernetes 1.23

Kubernetes 1.23 現已在 Amazon EKS 中提供。如需關於 Kubernetes 1.23,請參閱官方版本公告

重要
  • 所以此 Kubernetes 已啟用樹狀內到容器儲存介面 (CSI) 磁碟區遷移功能。此功能可取代現有的 Kubernetes 具有對應 Amazon EBS 驅動程式的 Amazon CSI EBS 樹狀儲存外掛程式。如需詳細資訊,請參閱 上的 Kubernetes 1.17 功能:Kubernetes In-Tree to CSI 磁碟區遷移移至 Beta Kubernetes 部落格。

    此功能會將樹內 APIs 轉換為同等的 CSI,APIs並將操作委派給替代的 CSI 驅動程式。透過此功能,如果您使用屬於這些工作負載的現有 PersistentVolumeStorageClassPersistentVolumeClaim 物件,則可能不會有任何明顯的變更。此功能可啟用 Kubernetes 將所有儲存體管理操作從樹內外掛程式委派給 CSI 驅動程式。如果您在現有叢集中使用 Amazon EBS 磁碟區,請在叢集中安裝 Amazon EBS CSI 驅動程式,然後再將叢集更新至版本 1.23。如果您未在更新現有叢集之前安裝驅動程式,工作負載可能會發生中斷。如果您打算在新1.23叢集中部署使用 Amazon EBS 磁碟區的工作負載,請在叢集中安裝 Amazon EBS CSI驅動程式,然後再部署叢集的工作負載。如需如何在叢集上安裝 Amazon EBS CSI驅動程式的指示,請參閱 使用 Amazon EBS 存放 Kubernetes 磁碟區。針對遷移功能的常見問題,請參閱 Amazon EBS CSI 遷移常見問答集

  • Amazon EKS 最佳化的延伸支援 Windows 由 發佈的AMIs AWS 不適用於 Kubernetes 版本,1.23但適用於 Kubernetes 版本 1.24和更高版本。

  • Kubernetes 已停止支援 dockershim 版本 中的 1.20,並在 版本 dockershim中移除 1.24。如需詳細資訊,請參閱中的 Kubernetes 正在從 Dockershim 遷移:承諾和後續步驟 Kubernetes 部落格。Amazon EKS 將結束對在 Amazon EKS 版本 中dockershim啟動 的支援1.24。從 Amazon EKS 版本 開始1.24,Amazon EKS 官方 AMIs 將是唯一containerd的執行時間。

    即使 Amazon EKS 版本1.23持續支援 dockershim,我們建議您立即開始測試應用程式,以識別並移除任何 Docker 相依性。如此一來,您就可以將叢集更新為版本 1.24。如需 dockershim 移除的詳細資訊,請參閱 從 遷移dockershim至 containerd

  • Kubernetes 的漸層IPv4/IPv6雙堆疊聯網 Pods、 服務和節點到一般可用性。不過,Amazon EKS 和 Amazon VPC CNI plugin for Kubernetes 不支援雙堆疊聯網。您的叢集可以將 IPv4IPv6 地址指派給 Pods 和服務,但無法同時指派這兩種地址類型。

  • Kubernetes 已將 Pod Security Admission (PSA) 功能升級為 Beta。此功能預設為啟用。如需詳細資訊,請參閱中的 Pod 安全許可 Kubernetes 文件中)。PSA 取代 Pod 安全政策 (PSP) 許可控制器。不支援 PSP 許可控制器,且已排定在 中移除 Kubernetes 版本 1.25

    所以此 PSP 許可控制器強制執行 Pod 的安全標準 Pods 在命名空間中,以設定強制執行層級的特定命名空間標籤為基礎。如需詳細資訊,請參閱 Amazon PSS 最佳實務指南中的 Pod 安全標準 (PSA) 和 Pod 安全許可 (Word)。 EKS

  • 與叢集一起部署kube-proxy的映像現在是 Amazon EKS Distro (EKS-D) 維護的最小基本映像。該映像包含套件的最少,而且沒有殼層或套件管理工具。

  • Kubernetes 漸進式暫時性容器至 Beta。Ephemeral 容器是在與現有 相同的命名空間中執行的臨時容器 Pod。 您可以使用它們來觀察 Pods 和 容器,用於疑難排解和偵錯。這在 kubectl exec 因容器毀損或容器映像不包含偵錯公用程式而不足時,用於互動式疑難排解格外有用。包含偵錯公用程式的容器範例為 distroless 映像。如需詳細資訊,請參閱 中的使用暫時性偵錯容器進行偵錯 Kubernetes 文件中)。

  • Kubernetes 將HorizontalPodAutoscalerautoscaling/v2穩定的 API 提升至一般可用性。API HorizontalPodAutoscaler autoscaling/v2beta2 已棄用。在 1.26 中將無法使用。

  • 中的 goaway-chance 選項 Kubernetes 透過隨機關閉連線,API 伺服器有助於防止HTTP/2用戶端連線卡在單一 API 伺服器執行個體上。當連線關閉時,用戶端會嘗試重新連線,而且可能會因為負載平衡而登陸不同的 API 伺服器。Amazon EKS 版本1.23已啟用goaway-chance旗標。如果您在 Amazon EKS 叢集上執行的工作負載使用與 HTTP 不相容的用戶端GOAWAY,建議您在連線終止時重新連線GOAWAY,以更新用戶端來處理。

如需完整 Kubernetes 1.23 changelog,請參閱 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOGWord-1.23.md#changelog-since-v1220