標準支援版本發行說明 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。

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

標準支援版本發行說明

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

注意

對於 1.24 和之後的叢集,正式發佈的 Amazon EKS AMI 包括 containerd作為唯一的執行階段。低於 1.24 的 Kubernetes 版本會使用 Docker 作為預設執行階段。這些版本具有引導旗標選項,您可以使用引導旗標選項在任何支援的具有 containerd 的叢集上測試工作負載。如需詳細資訊,請參閱 Amazon EKS 已結束對 Dockershim 的支援

Kubernetes1.30

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

重要
  • 從 Amazon EKS 版本1.30或更新版本開始,任何新建立的受管節點群組都會自動預設使用 Amazon Linux 2023 (AL2023) 做為節點作業系統。以前,新的節點群組會預設為 Amazon Linux 2 (AL2)。建立新節點群組時,您可以選擇 AL2 作為 AMI 類型,繼續使用 AL2。

  • 使用 Amazon EKS 時1.30topology.k8s.aws/zone-id標籤會新增至工作者節點。您可以使用可用區域 ID (AZ ID) 來決定一個帳戶中資源相對於另一個帳戶中資源的位置。如需詳細資訊,請參閱AWS RAM 使用者指南中的 AWS 資源的可用區域 ID

  • 從開始1.30,Amazon EKS 不再在套用至新建立叢集的gp2StorageClass資源上包含default註解。如果您按名稱引用此存儲類別,則這不會產生任何影響。如果您依賴StorageClass在叢集中具有預設值,則必須採取行動。您應該StorageClass依名稱來參照gp2。或者,您可以在安裝v1.31.0或更高版本時將defaultStorageClass.enabled參數設定為 true,部署 Amazon EBS 建議的預設儲存類別。aws-ebs-csi-driver add-on

  • Amazon EKS 叢集 IAM 角色所需的最低 IAM 政策已變更。此動作ec2:DescribeAvailabilityZones為必要動作。如需詳細資訊,請參閱 Amazon EKS 叢集 IAM 角色

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

Kubernetes1.29

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

重要
  • FlowSchema和已取代的 flowcontrol.apiserver.k8s.io/v1beta2 API 版本PriorityLevelConfiguration不再在中提供Kubernetesv1.29。如果您有資訊清單或用戶端軟體使用已淘汰的 Beta API 群組,您應該在升級至v1.29之前變更這些資訊清單或用戶端軟體。

  • 節點對象的.status.kubeProxyVersion字段現在已被棄用,Kubernetes項目提議在 future 的版本中刪除該字段。不推薦使用的字段不准確,歷史上已被管理 kubelet-實際上並不知道kube-proxy版本,甚至kube-proxy是否正在運行。如果您一直在用戶端軟體中使用此欄位,請停止-資訊不可靠,而且該欄位現在已被取代。

  • 為了減少潛在的攻擊面,如果長時間未使用舊式自動產生的以密碼為基礎的權杖 (預設為 1 年),LegacyServiceAccountTokenCleanUp功能會Kubernetes1.29將它們標示為無效 (預設為 1 年),如果長時間未嘗試使用,則會自動移除它們標記為無效 (預設為額外 1 年)。要識別此類令牌,您可以運行:

    kubectl get cm kube-apiserver-legacy-service-account-token-tracking -nkube-system

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

Kubernetes1.28

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

  • Kubernetes v1.28 將核心節點與控制平面元件之間的支援偏移從 n-2 n-3 擴充一個次要版本,以便支援最舊次要版本的節點元件 (kubeletkube-proxy) 可以搭配最新支援的次要版本一起使用控制平面元件 (kube-apiserver, kube-scheduler, kube-controller-manager, cloud-controller-manager)。

  • Pod GC Controller 的指標 force_delete_pods_totalforce_delete_pod_errors_total 已經增強,負責所有強制 Pod 刪除。原因會新增至量度,以指出網繭是否因為網繭已終止、孤立、以 out-of-service 污染終止,或終止和未排定而強制刪除。

  • 已修改 PersistentVolume (PV) 控制器,自動將預設 StorageClass 指定給任何未設定 PersistentVolumeClaim 的未受限制 storageClassName。此外,API 伺服器內的 PersistentVolumeClaim 接納驗證機制已經調整,以允許將值從未設定狀態變更為實際StorageClass 名稱。

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

Kubernetes1.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 命令行引數。containerd此後1.24,Amazon EKS 的預設容器執行階段就不需要指定容器執行階段。自 1.27 起,Amazon EKS 將忽略傳遞給任何啟動程序指令碼的 --container-runtime 引數。切勿將此引數傳遞給 --kubelet-extra-args,防止節點啟動程序期間發生錯誤。您必須移除所有節點建立工作流程和建置指令碼中的 --container-runtime 引數。

  • Kubernetes 1.27 中的 kubelet 會將預設的 kubeAPIQPS 增加為 50,並將 kubeAPIBurst 增加為 100。這些增強功能允許 kubelet 處理更大量的 API 查詢,改善回應時間和效能。當 Pods 的需求增加時,由於擴展要求,修改後的預設值可確保 kubelet 能有效管理增加的工作負載。因此,Pod 啟動速度更快,且叢集作業更有效率。

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

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

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

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

Kubernetes1.26

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

重要

Kubernetes 1.26 不再支援 CRI v1alpha2。如果容器執行期不支援 CRI v1,這會導致 kubelet 不再註冊節點。這也意味著 Kubernetes 1.26 不支援 containerd 次要版本 1.5 和更早版本。如果使用的是 containerd,您需要先升級至 containerd 版本 1.6.0 或更新版本,然後再將任何節點升級至 Kubernetes 1.26。您也需要升級僅支援 v1alpha2 的任何其他容器執行期。如需詳細資訊,請參閱容器執行期廠商。依預設,Amazon Linux 和 Bottlerocket AMI 包含 containerd 版本 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 plugin for Kubernetes Amazon EKS 附加元件

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

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