協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定混合節點閘道的 CNI
Amazon EKS 混合節點閘道需要特定的 Cilium 組態,才能在 VPC 和混合節點之間啟用 VXLAN 型連線。您必須啟用 Cilium VTEP (VXLAN 通道端點) 支援並停用 L7 代理。
先決條件
-
Cilium 已安裝在您的混合節點上。如需安裝指示,請參閱設定混合節點的 CNI。
注意
僅下列最低 EKS Cilium 版本支援 Cilium VTEP:
-
Cilium 1.17.13-1 或更新版本
-
Cilium 1.18.8-1 或更新版本
-
Cilium 1.19.2-1 或更新版本
如果您執行的是較舊的版本,請在啟用 VTEP 之前升級 Cilium。如需升級說明,請參閱 設定混合節點的 CNI。
啟用 VTEP 和停用 L7 代理
設定 Cilium 版本並執行 helm upgrade命令以啟用 VTEP,並在您現有的 Cilium 安裝上停用 L7 代理。您可以在 Amazon ECR Public 找到最新的可用修補程式版本:eks/cilium/cilium
helm upgrade cilium oci://public.ecr.aws/eks/cilium/cilium \ --versionCILIUM_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
必要設定
| 設定 | Value | Description |
|---|---|---|
|
|
|
啟用 Cilium 的 VXLAN 通道端點支援。這可讓混合節點上的 Cilium 代理程式封裝 VPC 繫結流量,並將其傳送至閘道。 |
|
|
|
停用 Cilium 的 L7 代理。這是 VTEP 正常運作的必要項目。如果啟用 L7 代理,可能會攔截並捨棄 VTEP 流量。 |
驗證組態
升級 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
根據預設, 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 連線可在沒有此設定的情況下運作。
後續步驟
設定 Cilium 和 VPC CNI 之後,請繼續安裝混合節點閘道。請參閱EKS 混合節點閘道入門。