

 **協助改進此頁面** 

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

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

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

# 使用具有受管節點群組的暖集區，減少開機時間較長之應用程式的延遲
<a name="warm-pools-managed-node-groups"></a>

當您的應用程式有很長的初始化或開機時間時，向外擴展事件可能會導致延遲 - 新的節點必須完全開機並加入叢集，才能排程 Pod。此延遲可能會影響流量尖峰或快速擴展事件期間的應用程式可用性。暖集區透過維護已完成開機程序的預先初始化 EC2 執行個體集區來解決此問題。在橫向擴展事件期間，執行個體會直接從暖集區移至叢集，略過耗時的初始化步驟，並大幅減少新容量變成可用所需的時間。如需詳細資訊，請參閱[《Amazon EC2 Auto Scaling 使用者指南》中的使用暖集區縮短開機時間的應用程式延遲](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html)。 *Amazon EC2 Auto Scaling *

Amazon EKS 受管節點群組支援 Amazon EC2 Auto Scaling 暖集區。暖集區會與 Auto Scaling 群組一起維護預先初始化的 EC2 執行個體，以便在橫向擴展事件期間快速加入叢集。暖集區中的執行個體已完成開機初始化程序，並且可以保持在 `Stopped`、 `Running`或 `Hibernated` 狀態。

Amazon EKS 使用`AWSServiceRoleForAmazonEKSNodegroup`服務連結角色在整個節點群組生命週期中管理暖集區，以建立、更新和刪除暖集區資源。

## 運作方式
<a name="warm-pools-how-it-works"></a>

當您設定暖集區時，Amazon EKS 會建立連接到節點群組 Auto Scaling 群組的 EC2 Auto Scaling 暖集區。執行個體會在暖集區中啟動、完成開機初始化程序，並保持設定狀態 (`Running`、 `Stopped`或 `Hibernated`)，直到需要為止。在橫向擴展事件期間，執行個體會從暖集區移至 Auto Scaling 群組，完成 Amazon EKS 初始化程序以加入叢集，並可用於 Pod 排程。啟用執行個體重複使用時，執行個體可以在縮減事件期間返回暖集區。

**重要**  
一律使用 `create-nodegroup`或 透過 Amazon EKS API 設定暖集區`update-nodegroup-config`。請勿使用 EC2 Auto Scaling API 手動修改暖集區設定，因為這可能會導致與 資源的 Amazon EKS 管理發生衝突。

## 考量事項
<a name="warm-pools-considerations"></a>

**重要**  
在設定暖集區之前，請參閱《[Amazon EC2 Auto Scaling 使用者指南》中的 Amazon EC2 Auto Scaling 暖集區](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html)中的先決條件和限制。 *Amazon EC2 Auto Scaling * 並非所有執行個體類型、AMIs或組態都受到支援。
+  **IAM 許可** – `AWSServiceRoleForAmazonEKSNodegroup`服務連結角色 （使用第一個受管節點群組自動建立） 包含必要的暖集區管理許可。
+  **AMI 限制** – 暖集區不支援自訂 AMIs。您必須使用 Amazon EKS 最佳化 AMIs。
+  **Bottlerocket 限制** – 如果使用 Bottlerocket AMIs，則不支援`Hibernated`集區狀態。僅限使用 `Stopped`或`Running`集區狀態。此外， Bottlerocket AMIs 不支援`reuseOnScaleIn`此功能。
+  **休眠支援** – 集`Hibernated`區狀態僅支援特定執行個體類型。如需支援的執行個體類型，請參閱《*Amazon EC2 使用者指南*》中的[休眠先決條件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html)。
+  **成本影響** – 在不需要時建立暖集區可能會導致不必要的成本。
+  **容量規劃** – 根據擴展模式調整暖集區大小，以平衡成本和可用性。從 10-20% 的預期尖峰容量開始。
+  **VPC 聯網** – 確保 Auto Scaling 群組和暖集區執行個體都有足夠的 IP 地址。

## 設定暖集區
<a name="warm-pools-configuration"></a>

您可以在建立新的受管節點群組時設定暖集區，或更新現有的受管節點群組以新增暖集區支援。

### 組態參數
<a name="warm-pools-parameters"></a>
+  **enabled** – （布林值） 表示您將暖集區連接至受管節點群組的意圖。啟用暖集區支援時需要。
+  **maxGroupPreparedCapacity** – （整數） 跨暖集區和 Auto Scaling 群組合併的執行個體總數上限。
+  **minSize** – （整數） 在暖集區中維護的執行個體數目下限。預設：`0`。
+  **poolState** – （字串） 暖集區執行個體的狀態。預設：`Stopped`。
+  **reuseOnScaleIn** – （布林值） 執行個體是否在縮減事件期間返回暖集區，而不是終止它們。預設：`false`。Bottlerocket AMIs不支援。

### 使用 AWS CLI
<a name="warm-pools-create-cli"></a>

您可以在建立受管節點群組時設定暖集區，或將暖集區新增至現有的節點群組。

 **使用暖集區建立節點群組** 

```
aws eks create-nodegroup \
  --cluster-name my-cluster \
  --nodegroup-name my-nodegroup \
  --node-role arn:aws:iam::111122223333:role/AmazonEKSNodeRole \
  --subnets subnet-12345678 subnet-87654321 \
  --region us-east-1 \
  --scaling-config minSize=2,maxSize=10,desiredSize=3 \
  --warm-pool-config enabled=true,maxGroupPreparedCapacity=8,minSize=2,poolState=Stopped,reuseOnScaleIn=true
```

 **將暖集區新增至現有的節點群組** 

```
aws eks update-nodegroup-config \
  --cluster-name my-cluster \
  --nodegroup-name my-nodegroup \
  --region us-east-1 \
  --warm-pool-config enabled=true,maxGroupPreparedCapacity=8,minSize=2,poolState=Stopped,reuseOnScaleIn=true
```

## 更新組態
<a name="warm-pools-update"></a>

隨時使用 更新暖集區設定`update-nodegroup-config`。現有的暖集區執行個體不會立即受到影響；新設定適用於更新後進入暖集區的執行個體。

```
aws eks update-nodegroup-config \
  --cluster-name my-cluster \
  --nodegroup-name my-nodegroup \
  --region us-east-1 \
  --warm-pool-config enabled=true,maxGroupPreparedCapacity=10,minSize=3,poolState=Running,reuseOnScaleIn=true
```

若要停用連接到節點群組的暖集區，請設定 `enabled=false`：

```
aws eks update-nodegroup-config \
  --cluster-name my-cluster \
  --nodegroup-name my-nodegroup \
  --region us-east-1 \
  --warm-pool-config enabled=false
```

## 其他資源
<a name="warm-pools-additional-resources"></a>
+  《[Amazon EC2 Auto Scaling 使用者指南》中的 Amazon EC2 Auto Scaling 的暖集區](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html) *Amazon EC2 Auto Scaling * 
+  [使用受管節點群組簡化節點生命週期](managed-node-groups.md) 