Pod可以訪問VPC內的資源,包括ECS、RDS、OSS、SLB等,在經過配置後也可以獲得訪問公網的能力。本文介紹如何配置源端和目的端,使得Pod可以訪問外部網路。
配置源端(Pod側)
佈建網域名解析
當訪問外部網路時,Pod會使用叢集的網域名稱解析功能解析訪問目標的IP地址,然後會經過Pod側的網路原則再進行訪問。如果網域名稱無法解析,您需要排查DNS異常問題。
配置網路原則
檢查Pod所在的命名空間是否設定網路原則,並且檢查該網路原則是否限制了Pod不能訪問目標IP地址。如果有,您需要修改網路原則。具體操作,請參見在ACS叢集中使用網路原則。
配置安全性群組
檢查叢集和Pod所屬的安全性群組是否有限制Pod訪問目標IP地址的規則,確保安全性群組規則滿足以下要求:
安全性群組出方向需要有允許Pod訪問目標IP地址和連接埠的規則。
安全性群組出方向不能有拒絕Pod訪問目標IP地址和連接埠的規則。
配置目的端(訪問目標側)
Pod可以訪問VPC內的資源,也可以訪問公網。不同的訪問目標,Pod配置方式不同。
訪問公網
訪問方式 | 適用情境 | 對外使用的公網IP地址 | 配置文檔 |
通過公網NAT Gateway訪問公網 | 多個Pod | 公網NAT Gateway綁定的EIP地址 | |
通過Pod綁定的EIP訪問公網 | 單個Pod | Pod綁定的EIP地址 |
訪問同一VPC中的其他雲資源
Pod訪問叢集所屬VPC中的其他雲資源(例如ECS、RDS、OSS等)時,訪問目的端可能會有一些存取控制規則限制了訪問的來源,例如安全性群組、ACL規則或白名單機制等。如果訪問目的端限制了Pod訪問時使用的IP,則會出現網路不通的問題。您需要在存取控制規則中為Pod使用的IP設定允許存取。
訪問LoadBalancer類型的Service
訪問叢集自身暴露的LoadBalancer類型的Service的地址時,無論是公網還是內網,都會被叢集內部攔截。針對此種情況,您需要修改Service的外部流量策略,合理配置Service。具體操作,請參見Kubernetes叢集中訪問LoadBalancer暴露出去的SLB地址不通。