更新叢集的受管節點群組 - Amazon EKS

協助改善此頁面

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

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

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

更新叢集的受管節點群組

當您啟動受管節點群組更新時,Amazon EKS會自動為您更新節點,完成了解節點更新的每個階段中列出的步驟。如果您使用的是 Amazon EKS最佳化 AMI,Amazon EKS會自動將最新的安全修補程式和作業系統更新套用至節點,做為AMI最新版本的一部分。

有幾種情況可讓您更新 Amazon EKS受管節點群組的版本或組態:

  • 您已更新 Kubernetes Amazon EKS叢集的 版本,並想要更新您的節點以使用相同的 Kubernetes 版本。

  • 您的受管節點群組可以使用新的AMI版本。如需 AMI 版本的詳細資訊,請參閱下列各節:

  • 您想要調整受管節點群組中執行個體的下限、上限或所需計數。

  • 您想要新增或移除 Kubernetes 受管節點群組中執行個體的標籤。

  • 您想要從受管節點群組新增或移除 AWS 標籤。

  • 您需要部署具有組態變更的新版本啟動範本,例如更新的自訂 AMI。

  • 您已部署 或更新版本1.9.0的 Amazon VPC CNI 附加元件,啟用了 附加元件進行字首委派,並想要新的 AWS Nitro System 節點群組中的 執行個體,以支援大幅增加的 Pods。 如需詳細資訊,請參閱 使用字首將更多 IP 地址指派給 Amazon EKS節點

  • 您已為 Windows 節點啟用 IP 字首委派,並希望節點群組中的新 AWS Nitro System 執行個體支援大幅增加的 Pods。 如需詳細資訊,請參閱 使用字首將更多 IP 地址指派給 Amazon EKS節點

如果受管節點群組的 有較新的AMI發行版本 Kubernetes 版本,您可以更新節點群組的版本,以使用較新的AMI版本。同樣地,如果您的叢集正在執行 Kubernetes 比節點群組更新的AMI版本,您可以更新節點群組,以使用最新版本以符合叢集的 Kubernetes 版本。

當受管節點群組中的節點因擴展操作或更新而終止時,Pods 會先耗盡該節點中的 。如需詳細資訊,請參閱了解節點更新的每個階段

更新節點群組版本

您可以使用下列其中一項來更新節點群組版本:

您更新至 的版本不能大於控制平面的版本。

eksctl

使用 更新受管節點群組 eksctl

將受管節點群組更新至相同節點的AMI最新版本 Kubernetes 目前部署在節點上的 版本,使用下列命令。使用您自己的值取代每一個 ‭example value‬。

eksctl upgrade nodegroup \ --name=node-group-name \ --cluster=my-cluster \ --region=region-code
注意

如果您要將已使用啟動範本部署的節點群組升級至新的啟動範本版本,請將 --launch-template-version version-number 新增至上述命令。啟動範本必須符合使用啟動範本自訂受管節點中所述的要求。如果啟動範本包含自訂 AMI, AMI必須符合指定 AMI中的要求。當您將節點群組升級到較新版本的啟動範本時,每個節點都會回收,以符合指定的啟動範本版本的新組態。

您無法在沒有啟動範本的情況下,將部署的節點群組直接升級至新的啟動範本版本。相反地,您必須使用啟動範本部署新的節點群組,才能將節點群組更新為新的啟動範本版本。

您可以將節點群組升級至與控制平面的相同版本 Kubernetes 版本。例如,如果您的叢集正在執行 Kubernetes 1.29,您可以升級目前正在執行的節點 Kubernetes 1.28 1.29使用下列命令進行版本 的 。

eksctl upgrade nodegroup \ --name=node-group-name \ --cluster=my-cluster \ --region=region-code \ --kubernetes-version=1.29

AWS Management Console

使用 更新受管節點群組 AWS Management Console

  1. 開啟 Amazon EKS主控台

  2. 選擇包含要更新之節點群組的叢集。

  3. 如果至少有一個節點群組有可用的更新,則頁面頂部會出現一個方塊,通知您可用的更新。如果您選取運算索引標籤,您會在節點群組資料表的AMI發行版本欄中看到立即更新,其中的節點群組具有可用的更新。若要更新節點群組,請選擇 Update now (立即更新)。

    您不會看到使用自訂 部署之節點群組的通知AMI。如果您的節點是以自訂 進行部署AMI,請完成下列步驟以部署新的更新自訂 AMI。

    1. 建立新的 版本AMI。

    2. 使用新 AMI ID 建立新的啟動範本版本。

    3. 將節點升級至啟動範本的新版本。

  4. Update node group version (更新節點群組版本) 對話方塊中,啟用或停用以下選項:

    • 更新節點群組版本 – 如果您部署了自訂AMI或 Amazon EKS最佳化AMI目前在叢集的最新版本上,則此選項無法使用。

    • Change launch template version (變更啟動範本版本):如果節點群組是在沒有自訂啟動範本的情況下進行部署,則無法使用此選項。您只能更新已使用自訂啟動範本部署之節點群組的啟動範本版本。選取節點群組要更新至的 Launch template version (啟動範本版本)。如果您的節點群組已設定自訂 AMI,則您選擇的版本也必須指定 AMI。當您升級至較新版本的啟動範本時,每個節點都會回收,以符合指定之啟動範本版本的新組態。

  5. 對於 Update strategy (更新策略),選取下列其中一個選項:

    • 滾動更新 – 此選項會遵守 Pod 叢集的中斷預算。如果有 ,更新會失敗 Pod 造成 Amazon EKS無法正常耗盡 的中斷預算問題 Pods 在此節點群組上執行的 。

    • 強制更新 – 此選項不遵守 Pod 中斷預算。無論 Pod 透過強制節點重新啟動來中斷預算問題。

  6. 選擇 Update (更新)。

編輯節點群組組態

您可以修改受管節點群組中的部分組態。

  1. 開啟 Amazon EKS主控台

  2. 選擇包含要編輯之節點群組的叢集。

  3. 選取 Compute (運算) 標籤。

  4. 選取要編輯的節點群組,然後選擇 Edit (編輯)。

  5. (選用) 在 Edit node group (編輯節點群組) 頁面上,執行以下作業:

    1. 編輯 Node group scaling configuration (節點群組擴展組態)。

      • Desired size (所需大小) – 指定受管節點群組目前應該維護的工作者節點數量。

      • Minimum size (大小下限) – 指定受管節點群組可縮減至的節點數量下限。

      • Maximum size (大小上限):指定受管節點群組可擴增至的節點數量上限。如需節點群組中支援的節點數量上限,請參閱 檢視和管理 Amazon EKS和 Fargate 服務配額

    2. (選用) 新增或移除 Kubernetes 標籤到節點群組中的節點。此處顯示的標籤只是您已套用至 Amazon 的標籤EKS。節點上可能存在其他未顯示在此處的標籤。

    3. (選用) 新增或移除 Kubernetes 節點群組中節點的污點。已新增的污點可能會有 NoSchedule NoExecute PreferNoSchedule 效果。如需詳細資訊,請參閱防止 Pods 在特定節點上排程

    4. (選用) 將 Tags (標籤) 新增至節點群組或從中移除標籤。這些標籤只會套用至 Amazon EKS節點群組。它們不會傳播到其他資源,例如節點群組中的子網路或 Amazon EC2執行個體。

    5. (選用) 編輯 Node Group update configuration (節點群組更新組態)。選取任何一個 Number (數字) 或 Percentage (百分比)。

      • Number (數量):選取並指定可平行更新節點群組的節點數量。這些節點在更新期間將無法使用。

      • Percentage (百分比):選取並指定可平行更新節點群組的節點百分比。這些節點在更新期間將無法使用。如果您的節點群組中有許多節點,這會很有用。

    6. 完成編輯後,請選擇儲存變更

重要

更新節點群組組態時,修改 NodegroupScalingConfig 不遵守 Pod 中斷預算 (PDBs)。與更新節點群組程序 (在PDBs升級階段期間消耗節點和尊重) 不同,更新擴展組態會導致透過 Auto Scaling 群組 (ASG) 縮減規模呼叫立即終止節點。無論您要縮減到的目標大小為何PDBs,這都不會考慮 。這表示當您減少 Amazon EKS受管節點群組desiredSize的 時,Pods 會在節點終止時立即被移出,而不遵循任何 PDBs。

📝 在 上編輯此頁面 GitHub