

 **協助改進此頁面** 

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

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

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

# 了解 EKS 自動模式中的 VPC 聯網與負載平衡
<a name="auto-networking"></a>

本主題闡釋如何在 EKS 自動模式中設定虛擬私有雲端 (VPC) 聯網與負載平衡功能。雖然 EKS 自動模式會自動管理大多數聯網元件，但您仍然可以透過 `NodeClass` 資源和負載平衡器注釋來自訂叢集聯網組態的某些方面。

當您使用 EKS Auto Mode 時， 會 AWS 管理叢集的 VPC 容器網路界面 (CNI) 組態和負載平衡器佈建。您可透過定義 `NodeClass` 物件，以及將特定注釋套用至服務與傳入資源來影響聯網行為，同時維持 EKS 自動模式提供的自動化營運模式。

## 聯網功能
<a name="_networking_capability"></a>

EKS 自動模式具有一個處理節點和 Pod 聯網的新聯網功能。您可以透過建立一個 `NodeClass` Kubernetes 物件進行設定。

先前 AWS VPC CNI 的組態選項不適用於 EKS Auto 模式。

### 使用 `NodeClass` 設定聯網
<a name="_configure_networking_with_a_nodeclass"></a>

EKS 自動模式中的 `NodeClass` 資源讓您能自訂聯網功能的特定層面。透過 `NodeClass`，您可以指定安全群組選擇、控制節點在 VPC 子網路上的放置、設定 SNAT 政策、配置網路政策以及啟用網路事件記錄。這種方法在提供聯網自訂彈性的同時，保持了 EKS 自動模式的自動化操作模型。

您可以使用 `NodeClass` 來：
+ 選取節點的安全群組
+ 控制節點在 VPC 子網路上的放置方式
+ 將節點 SNAT 政策設定為 `random` 或 `disabled` 
+ 啟用 Kubernetes *網路政策*，包括：
  + 將網路政策設定為預設拒絕或預設允許
  + 啟用網路事件記錄至檔案。
+ 透過將 Pod 附加至不同的子網路，將 Pod 流量與節點流量隔離。

了解如何[建立 Amazon EKS NodeClass](create-node-class.md)。

### 考量事項
<a name="_considerations"></a>

EKS 自動模式支援：
+ EKS 網路政策。
+ Kubernetes Pod 的 `HostPort` 與 `HostNetwork` 選項。
+ 位於公有或私有子網路中的節點和 Pod。
+ 在節點上快取 DNS 查詢。

EKS 自動模式**不支援**下列功能：
+ 每個 Pod 的安全群組 (SGPP)。若要在自動模式下將個別安全群組套用至 Pod 流量，請`NodeClass`改為在 `podSecurityGroupSelectorTerms`中使用 。如需詳細資訊，請參閱[Pod 的個別子網路和安全群組](create-node-class.md#pod-subnet-selector)。
+ `ENIConfig` 中的自訂聯網。您可以使用 [Pod 的個別子網路和安全群組](create-node-class.md#pod-subnet-selector) 將 Pod 放入多個子網路中，或將其與節點流量完全隔離。
+ 預熱 IP、預熱前綴和預熱 ENI 組態。
+ 最小 IP 目標組態。
+ 開放原始碼 AWS VPC CNI 支援的其他組態。
+ 網路政策組態，如連線追蹤計時器自訂 (預設為 300 秒)。
+ 將網路事件日誌匯出至 CloudWatch。

### 網路資源管理
<a name="_network_resource_management"></a>

EKS 自動模式透過監控聯網組態的 NodeClass 資源來處理字首、IP 定址和聯網介面管理。該服務會自動執行多項關鍵操作：

 **字首委派** 

EKS Auto Mode 預設為使用字首委派 (/28 個字首） 進行 Pod 聯網，並維護預先定義的 IP 資源暖集區，該集區會根據排程的 Pod 數量進行擴展。偵測到 Pod 子網路分段時，自動模式會佈建次要 IP 地址 (/32)。由於此預設 Pod 網路演算法，自動模式會根據每個執行個體類型支援的 ENIs 和 IPs 數目 （假設片段的最壞情況），計算每個節點的最大 Pod。如需每個執行個體類型的最大 ENIs IPs 的詳細資訊，請參閱 EC2 使用者指南中的[每個網路界面的最大 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AvailableIpPerENI.html)。較新一代 (Nitro v6 及更高版本） 執行個體系列通常會增加每個執行個體類型的 ENIs 和 IPs，而自動模式會相應地調整最大 Pod 計算。

對於 IPv6 叢集，只會使用字首委派，而自動模式一律使用每個節點最多 110 個 Pod。

 **冷卻時間管理** 

該服務為不再使用的字首或次要 IPv4 位址實作冷卻集區。在冷卻時間到期後，這些資源將被釋出回 VPC。但是，如果 Pod 在冷卻時間內重複使用這些資源，則會從冷卻集區還原這些資源。

 **IPv6 支援** 

對於 IPv6 叢集，EKS 自動模式會在主要網路介面上為每個節點佈建 `/80` IPv6 前綴。使用 時`podSubnetSelectorTerms`，字首會改為配置在 Pod 子網路中的次要網路界面上。

該服務還確保所有網路介面的正確管理和垃圾回收。

## Load balancing
<a name="auto-lb-consider"></a>

您可以在服務和輸入資源上使用註釋來設定 EKS Auto Mode 佈建的 AWS Elastic Load Balancer。

如需詳細資訊，請參閱 [建立 IngressClass 以設定 Application Load Balancer](auto-configure-alb.md) 或 [使用服務注釋設定 Network Load Balancer](auto-configure-nlb.md) 。

### 使用 EKS 自動模式進行負載平衡的考量事項
<a name="_considerations_for_load_balancing_with_eks_auto_mode"></a>
+ 預設目標模式是 IP 模式，而非執行個體模式。
+ EKS 自動模式僅支援 Network Load Balancer 的安全群組模式。
+  AWS 不支援將負載平衡器從自我管理 AWS 負載平衡器控制器遷移至 EKS Auto Mode 管理。
+ 不支援 `TargetGroupBinding` 規格中的 `networking.ingress.ipBlock` 欄位。
+ 如果您的工作節點使用自訂安全群組 (而非 `eks-cluster-sg- ` 命名模式)，則您的叢集角色需要額外的 IAM 許可。預設的 EKS 受管政策僅允許 EKS 修改名為 `eks-cluster-sg-` 的安全群組。如果沒有修改您自訂安全群組的許可，EKS 將無法新增所需的輸入規則，以允許 ALB/NLB 流量到達您的 Pod。

#### CoreDNS 考量事項
<a name="dns-consider"></a>

EKS Auto Mode 不會使用傳統 CoreDNS 部署在叢集內提供 DNS 解析。反之，自動模式節點會利用 CoreDNS，直接在每個節點上執行做為系統服務。如果將傳統叢集轉換為自動模式，您可以將工作負載移至自動模式節點後，從叢集中移除 CoreDNS 部署。

**重要**  
如果您計劃維護具有自動模式和非自動模式節點的叢集，則必須保留 CoreDNS 部署。非自動模式節點依賴傳統的 CoreDNS Pod 進行 DNS 解析，因為它們無法存取自動模式提供的節點層級 DNS 服務。