協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
啟用 Pod 的傳出網際網路存取
適用於:Linux IPv4
Fargate 節點、具有 Amazon EC2 執行個體的 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 外掛程式
由於此行為:
如果在您的環境中下列任一陳述式成立,請使用下列命令變更預設組態。
-
您的網路或 VPCs 中有使用 VPC 對等互連、傳輸 VPC 或 AWS Direct Connect 連接到叢集 VPC 的資源,這些資源需要使用
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
CIDRs 清單,您可以透過在 Windows 引導指令碼中指定 ExcludedSnatCIDRs
參數來定義此項目。如需使用此參數的詳細資訊,請參閱 引導指令碼組態參數。
主機聯網
* 如果 Pod 的規格包含 hostNetwork=true
(預設為 false
),則其 IP 地址不會翻譯為不同的地址。根據預設, kube-proxy
和 Amazon VPC CNI 外掛程式適用於叢集上執行的 Kubernetes Pod。對於這些 Pod,IP 地址與節點的主要 IP 地址相同,因此不會翻譯 Pod 的 IP 地址。如需 Pod hostNetwork
設定的詳細資訊,請參閱 Kubernetes API 參考中的 PodSpec v1 核心