協助改善此頁面
想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
適用於 Pods 的 SNAT
如果您使用 IPv6
系列部署叢集,則本主題中的資訊並不適用於您的叢集,因為 IPv6
地址未經過網路轉換。如需搭配使用 IPv6
與叢集的詳細資訊,請參閱 IPv6叢集的位址Pods、和 services。
預設情況下,叢集中的每個 Pod 均從與部署 Pod 的 VPC 關聯的無類別域間路由 (CIDR) 區指派一個私有 IPv4
地址。同一 VPC 中的 Pods 使用這些私有 IP 地址作為端點相互通訊。當 Pod 與任何不在與您的 VPC 關聯的 CIDR 區塊內的 IPv4
地址通訊時,預設情況下,Amazon VPC CNI 外掛程式 (適用於 LinuxIPv4
地址轉譯為正在執行 Pod 的節點的主要彈性網路界面的主要私有 IPv4
地址 *。
注意
對於 Windows 節點,還有其他詳細資訊需要考慮。依預設,Windows 的 VPC CNI 外掛程式
由於此行為:
如果在您的環境中下列任一陳述式成立,請使用下列命令變更預設組態。
-
您在網路或 VPC 擁有資源,且其使用 VPC 對等互連、傳輸 VPC 或 AWS Direct Connect 連線到叢集,且其需使用
IPv4
位址與您的 Pods 啟動通訊,而您的外掛程式版本早於1.8.0
。
kubectl set env daemonset -n kube-system aws-node AWS_VPC_K8S_CNI_EXTERNALSNAT=true
注意
AWS_VPC_K8S_CNI_EXTERNALSNAT
與 AWS_VPC_K8S_CNI_EXCLUDE_SNAT_CIDRS
CNI 組態變數不適用 Windows 節點。Windows 不支援停用 SNAT。對於從 SNAT 排除 IPv4
CIDR,您可透過在 Windows 引導指令碼中指定 ExcludedSnatCIDRs
參數來進行定義。如需使用此參數的詳細資訊,請參閱 引導指令碼組態參數。
* 如果 Pod's 規格包含 hostNetwork=true
(預設為 false
),則其 IP 地址不會被轉換為其他地址。預設情況下,在您的叢集上執行的 kube-proxy
和 Amazon VPC CNI plugin for Kubernetes Pods 即為這種情況。對於這些 Pods,IP 地址與節點的主 IP 地址相同,因此未轉譯 Pod's IP 地址。如需有關Pod'shostNetwork
設定的詳細資訊,請參閱 Kubernetes API 參考資料中的 PodSpec v1 核心