協助改進此頁面
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
啟用 Pod 的傳出網際網路存取
適用於:包含 Amazon EC2 執行個體的 Linux IPv4 Fargate 節點、Linux 節點
如果您使用 IPv6 系列部署叢集,則本主題中的資訊並不適用於您的叢集,因為 IPv6 位址未經過網路轉換。如需搭配使用 IPv6 與叢集的詳細資訊,請參閱 了解叢集、Pod 與服務的 IPv6 位址。
預設情況下,叢集中的每個 Pod 均從與部署 Pod 的 VPC 關聯的無類別域間路由 (CIDR) 區塊指派一個私有 IPv4 位址。同一 VPC 中的 Pod 使用這些私有 IP 位址作為端點相互通訊。當 Pod 與任何不在與您的 VPC 關聯的 CIDR 區塊內的 IPv4 位址通訊時,預設情況下,Amazon VPC CNI 外掛程式 (適用於 LinuxIPv4 位址轉譯為正在執行 Pod 的節點的主要彈性網路介面的主要私有 IPv4 位址 *。
注意
對於 Windows 節點,還有其他詳細資訊需要考慮。依預設,適用於 Windows 的 VPC CNI 外掛程式
由於此行為:
如果在您的環境中下列任一陳述式成立,請使用下列命令變更預設組態。
-
您在網路或 VPC 擁有資源,且其使用 VPC 對等互連、傳輸 VPC 或 AWS Direct Connect 連線到叢集,且其需使用
IPv4位址與您的 Pod 啟動通訊,而您的外掛程式版本早於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 規格包含 hostNetwork=true (預設為 false),則其 IP 位址不會被轉譯為其他位址。根據預設,在您叢集上執行的 kube-proxy 和 Kubernetes 專用 Amazon VPC CNI 外掛程式 Pod 屬於這種情況。對於這些 Pod,IP 位址與節點的主 IP 位址相同,因此未轉譯 Pod 的 IP 位址。如需有關 Pod hostNetwork 設定的詳細資訊,請參閱 Kubernetes API 參考中的 PodSpec v1 核心