

 **協助改進此頁面** 

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

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

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

# 更新叢集的受管節點群組
<a name="update-managed-node-group"></a>

啟動受管節點群組更新後，Amazon EKS 會自動為您更新節點，完成[了解節點更新的每個階段](managed-node-update-behavior.md)中列出的步驟。如果使用的是 Amazon EKS 最佳化 AMI，則 Amazon EKS 會自動將最新的安全修補程式和作業系統更新套用至您的節點，作為最新 AMI 發行版本的一部分。

有數個案例可用於更新 Amazon EKS 受管節點群組的版本或組態：
+ 您已更新 Amazon EKS 叢集的 Kubernetes 版本，並且想要更新您的節點，以使用相同的 Kubernetes 版本。
+ 新的 AMI 發行版本可供受管節點群組使用。如需 AMI 版本的詳細資訊，請參閱下列各節：
  +  [擷取 Amazon Linux AMI 版本資訊](eks-linux-ami-versions.md) 
  +  [使用最佳化的 Bottlerocket AMI 建立節點](eks-optimized-ami-bottlerocket.md) 
  +  [擷取 Windows AMI 版本資訊](eks-ami-versions-windows.md) 
+ 您想要調整受管節點群組中執行個體的下限、上限或所需計數。
+ 您想要從受管節點群組中的執行個體新增或移除 Kubernetes 標籤。
+ 您想要從受管節點群組新增或移除 AWS 標籤。
+ 您需要部署具有組態變更的新版啟動範本，例如更新的自訂 AMI。
+ 您已部署 版本 `1.9.0`或更新版本的 Amazon VPC CNI 附加元件、啟用用於字首委派的附加元件，並希望節點群組中的新 AWS Nitro System 執行個體支援大幅增加的 Pod 數量。如需詳細資訊，請參閱[將更多 IP 位址指派給具有字首的 Amazon EKS 節點](cni-increase-ip-addresses.md)。
+ 您已為 Windows 節點啟用 IP 字首委派，並希望節點群組中的新 AWS Nitro System 執行個體支援大幅增加的 Pod 數量。如需詳細資訊，請參閱[將更多 IP 位址指派給具有字首的 Amazon EKS 節點](cni-increase-ip-addresses.md)。

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

當受管節點群組中的節點由於擴展操作或更新而終止時，該節點中的 Pod 叢集會先耗盡。如需詳細資訊，請參閱[了解節點更新的每個階段](managed-node-update-behavior.md)。

## 更新節點群組版本
<a name="mng-update"></a>

您可以透過以下任一項來更新節點群組版本：
+  [`eksctl`](#eksctl_update_managed_nodegroup) 
+  [AWS 管理主控台](#console_update_managed_nodegroup) 

您更新的版本不能比控制平面的版本還新。

## `eksctl`
<a name="eksctl_update_managed_nodegroup"></a>

 **使用 `eksctl` 來更新受管節點群組** 

使用下列命令，將受管節點群組更新至目前節點上所部署相同 Kubernetes 版本的最新 AMI 版本。使用您自己的值取代每一個*範例值*。

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

**注意**  
如果要將使用啟動範本部署的節點群組升級至新的啟動範本版本，則請將 `--launch-template-version version-number ` 新增至上述命令。啟動範本必須滿足[透過啟動範本來自訂受管節點](launch-templates.md)中所述的要求。如果啟動範本包含自訂 AMI，則 AMI 必須滿足[指定 AMI](launch-templates.md#launch-template-custom-ami) 中的要求。當您將節點群組升級至較新版本的啟動範本時，每個節點都會回收，以符合指定之啟動範本版本的新組態。

您無法直接將未部署啟動範本的節點群組升級至新的啟動範本版本。相反地，您必須使用啟動範本部署新的節點群組，才能將節點群組更新為新的啟動範本版本。

您可以將節點群組升級至與控制平面的 Kubernetes 版本相同的版本。例如，當您有一個正在執行 Kubernetes `1.35` 的叢集時，您可以使用下列命令，將目前執行 Kubernetes `1.34` 的節點升級到 `1.35` 版。

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

## AWS 管理主控台
<a name="console_update_managed_nodegroup"></a>

 **使用 AWS 管理主控台 來更新受管節點群組** 

1. 開啟 [Amazon EKS 主控台](https://console.aws.amazon.com/eks/home#/clusters)。

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

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

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

   1. 建立 AMI 的新版本。

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

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

1. 在 **Update node group version** (更新節點群組版本) 對話方塊中，啟用或停用以下選項：
   +  **Update node group version** (更新節點群組版本)：如果您部署了自訂 AMI，或經 Amazon EKS 優化的 AMI 目前是叢集的最新版本，則無法使用此選項。
   +  **Change launch template version** (變更啟動範本版本)：如果節點群組是在沒有自訂啟動範本的情況下進行部署，則無法使用此選項。您只能更新已使用自訂啟動範本部署之節點群組的啟動範本版本。選取節點群組要更新至的 **Launch template version** (啟動範本版本)。如果節點群組設定了自訂 AMI，則您選取的版本也必須指定 AMI。當您升級至較新版本的啟動範本時，每個節點都會回收，以符合指定之啟動範本版本的新組態。

1. 對於 **Update strategy** (更新策略)，選取下列其中一個選項：
   +  **Rolling update** (滾動更新) – 此選項會遵循叢集的 Pod 中斷預算。如果發生 Pod 中斷預算問題，導致 Amazon EKS 無法正常地消耗正在此節點群組上執行的 Pod，則更新會失敗。
   +  **強制更新** – 此選項不會遵循 Pod 中斷預算。無論 Pod 中斷預算問題如何，都會強制節點重新啟動，進行更新。

1. 選擇 **Update** (更新)。

## 編輯節點群組組態
<a name="mng-edit"></a>

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

1. 開啟 [Amazon EKS 主控台](https://console.aws.amazon.com/eks/home#/clusters)。

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

1. 選取 **Compute** (運算) 標籤。

1. 選取要編輯的節點群組，然後選擇 **Edit** (編輯)。

1. (選用) 在 **Edit node group** (編輯節點群組) 頁面上，執行以下作業：

   1. 編輯 **Node group scaling configuration** (節點群組擴展組態)。
      +  **Desired size** (所需大小) – 指定受管節點群組目前應該維護的工作者節點數量。
      +  **Minimum size** (大小下限) – 指定受管節點群組可縮減至的節點數量下限。
      +  **Maximum size** (大小上限)：指定受管節點群組可擴增至的節點數量上限。如需節點群組中支援的節點數量上限，請參閱 [檢視與管理 Amazon EKS 和 Fargate 服務配額](service-quotas.md)。

   1. (選用) 將 **Kubernetes 標籤**新增至節點群組中的節點或從中移除這些標籤。這裡顯示的標籤只是您使用 Amazon EKS 所套用的標籤。其他標籤可能存在於這裡未顯示的節點上。

   1. (選用) 將 **Kubernetes 污點**新增至節點群組中的節點或從中移除這些標籤。已新增的污點可能會有 ` NoSchedule `、` NoExecute ` 或 ` PreferNoSchedule ` 效果。如需詳細資訊，請參閱[配方：阻止在特定節點上排程 Pod](node-taints-managed-node-groups.md)。

   1. (選用) 將 **Tags** (標籤) 新增至節點群組或從中移除標籤。這些標籤僅適用於 Amazon EKS 節點群組。標籤不會傳播到其他資源，例如節點群組中的子網路或 Amazon EC2 執行個體。

   1. (選用) 編輯 **Node Group update configuration** (節點群組更新組態)。選取任何一個 **Number** (數字) 或 **Percentage** (百分比)。
      +  **Number** (數量)：選取並指定可平行更新節點群組的節點數量。這些節點在更新期間將無法使用。
      +  **Percentage** (百分比)：選取並指定可平行更新節點群組的節點百分比。這些節點在更新期間將無法使用。如果您的節點群組中有許多節點，這會很有用。

   1. 完成編輯後，請選擇**儲存變更**。

**重要**  
更新節點群組組態後，修改 [https://docs.aws.amazon.com/eks/latest/APIReference/API_NodegroupScalingConfig.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_NodegroupScalingConfig.html) 與 Pod 中斷預算 (PDB) 不相符。與[更新節點群組](managed-node-update-behavior.md)程序 (這會在升級階段期間消耗節點且與 PDB 相符) 不同的是，若更新擴展組態，會導致節點透過 Auto Scaling 群組 (ASG) 縮減呼叫立即終止。發生此情況不會考慮 PDB，無論您在縮減的目標大小為何。這意味著，若您減少 Amazon EKS 受管節點群組的 `desiredSize`，Pod 會在節點終止後立即移出，而不與任何 PDB 相符。