

 **協助改進此頁面** 

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

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

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

# 設定混合節點閘道的 CNI
<a name="hybrid-nodes-gateway-cni"></a>

Amazon EKS 混合節點閘道需要特定的 Cilium 組態，才能在 VPC 和混合節點之間啟用 VXLAN 型連線。您必須啟用 Cilium VTEP (VXLAN 通道端點） 支援並停用 L7 代理。

## 先決條件
<a name="hybrid-nodes-gateway-cni-prereqs"></a>
+ Cilium 已安裝在您的混合節點上。如需安裝指示，請參閱[設定混合節點的 CNI](hybrid-nodes-cni.md)。

**注意**  
僅下列最低 EKS Cilium 版本支援 Cilium VTEP：  
Cilium 1.17.13-1 或更新版本
Cilium 1.18.8-1 或更新版本
Cilium 1.19.2-1 或更新版本
如果您執行的是較舊的版本，請在啟用 VTEP 之前升級 Cilium。如需升級說明，請參閱 [設定混合節點的 CNI](hybrid-nodes-cni.md)。

## 啟用 VTEP 和停用 L7 代理
<a name="hybrid-nodes-gateway-cni-configure"></a>

設定 Cilium 版本並執行 `helm upgrade`命令以啟用 VTEP，並在您現有的 Cilium 安裝上停用 L7 代理。您可以在 [Amazon ECR Public 找到最新的可用修補程式版本：eks/cilium/cilium](https://gallery.ecr.aws/eks/cilium/cilium)。

```
helm upgrade cilium oci://public.ecr.aws/eks/cilium/cilium \
  --version {{CILIUM_VERSION}} \
  --namespace kube-system \
  --reuse-values \
  --set vtep.enabled=true \
  --set l7Proxy=false
```

升級完成後，重新啟動 Cilium DaemonSet 以套用新組態：

```
kubectl rollout restart daemonset/cilium -n kube-system
kubectl rollout status daemonset/cilium -n kube-system
```

## 必要設定
<a name="hybrid-nodes-gateway-cni-settings"></a>


| 設定 | Value | Description | 
| --- | --- | --- | 
|  `vtep.enabled`  |  `true`  | 啟用 Cilium 的 VXLAN 通道端點支援。這可讓混合節點上的 Cilium 代理程式封裝 VPC 繫結流量，並將其傳送至閘道。 | 
|  `l7Proxy`  |  `false`  | 停用 Cilium 的 L7 代理。這是 VTEP 正常運作的必要項目。如果啟用 L7 代理，可能會攔截並捨棄 VTEP 流量。 | 

## 驗證組態
<a name="hybrid-nodes-gateway-cni-verify"></a>

升級 Cilium 之後，請確認 VTEP 已啟用且 L7 代理已停用：

```
kubectl get configmap cilium-config -n kube-system -o yaml | grep -E "enable-vtep|enable-l7-proxy"
```

您應該會看到類似以下的輸出：

```
enable-l7-proxy: "false"
enable-vtep: "true"
```

## 設定混合 Pod 流量的 VPC CNI
<a name="hybrid-nodes-gateway-cni-vpc-cni"></a>

根據預設， AWS VPC CNI 會將來源 NAT (SNAT) 套用至離開節點的所有 Pod 流量。為了確保具有混合 Pod 端點的 Kubernetes ClusterIP 服務能從雲端節點正常運作，請從 SNAT 中排除混合 Pod CIDRs。這可讓 kube-proxy DNAT 的流量正確使用 VPC 路由。

將 `aws-node` DaemonSet 上的`AWS_VPC_K8S_CNI_EXCLUDE_SNAT_CIDRS`環境變數設定為您的混合 Pod CIDR (s)：

```
kubectl set env daemonset aws-node -n kube-system \
  AWS_VPC_K8S_CNI_EXCLUDE_SNAT_CIDRS={{POD_CIDRS}}
```

將值取代為您實際的混合 CIDRs （如果是多個，則以逗號分隔）。

此設定會將混合 Pod CIDRs 新增至 VPC CNI 的 ip 規則，讓目的地為混合 Pod 的流量透過主路由表路由，其中包含通往閘道 ENI 的 VPC 路由。

**注意**  
從雲端 Pod 到混合 Pod 端點的 ClusterIP 服務流量需要此步驟。依 IP 地址的直接 pod-to-pod 連線可在沒有此設定的情況下運作。

## 後續步驟
<a name="hybrid-nodes-gateway-cni-next"></a>

設定 Cilium 和 VPC CNI 之後，請繼續安裝混合節點閘道。請參閱[EKS 混合節點閘道入門](hybrid-nodes-gateway-getting-started.md)。