Pod可以作為用戶端訪問VPC內的資源,包括ECS、RDS、OSS等,在經過配置後也可以擷取訪問公網的能力。本文介紹在為Pod配置訪問外部網路時的注意事項。
配置Pod注意事項
佈建網域名解析
當訪問外部網路時,Pod會使用叢集的網域名稱解析功能解析訪問目標的IP,然後會經過Pod側的網路原則再進行訪問。如果網域名稱無法解析,您需要排查DNS異常問題。具體操作,請參見DNS解析異常問題排查。
配置網路原則
檢查Pod所在的命名空間是否設定網路原則,並且檢查該網路原則是否限制了Pod不能訪問目標IP。如果有,您需要修改網路原則。具體操作,請參見在ACK叢集使用網路原則。
配置安全性群組
檢查叢集的安全性群組以及Pod所在的ECS的安全性群組是否有限制Pod訪問目標IP的規則,確保安全性群組符合以下規則:
安全性群組出方向需要有允許Pod訪問目標IP和連接埠的規則。
安全性群組出方向不能有拒絕Pod訪問目標IP和連接埠的規則。
關於如何管理叢集安全性群組,請參見配置叢集安全性群組。
配置訪問目的注意事項
Pod可以訪問公網,也支援訪問VPC內資源,包括已有的ECS、SLB等自有資源,RDS、OSS等雲端服務和自身叢集暴露的LoadBalancer。不同的訪問目標,Pod配置方式不同。
訪問公網
在IPv4單棧的叢集中,Pod只有IPv4地址,只能訪問公網IPv4地址,無法訪問IPv6地址。
叢集開啟雙棧後,Pod同時擁有IPv4地址和IPv6地址。IPv4地址是私網IP地址,而IPv6地址是公網地址。
不同類型的叢集配置時的注意事項不同:
IPv4單棧叢集:
在單棧叢集中使Pod擁有訪問公網的能力,需要為Pod掛載公網EIP或使用NAT Gateway。下面介紹3種為Pod配置訪問能力的方式:
訪問公網方式
Terway網路外掛程式
Flannel網路外掛程式
通過NAT Gateway訪問公網
SNAT規則中需要包含Pod的SNAT條目。配置NAT Gateway,請參見為已有叢集開啟公網訪問能力。
對外使用的公網IP地址為NAT Gateway綁定的公網EIP地址。
SNAT規則中需要包含Pod所在節點的SNAT條目。配置NAT Gateway,請參見為已有叢集開啟公網訪問能力。
對外使用的公網IP地址為NAT Gateway綁定的公網EIP地址。
直接綁定EIP訪問公網
Terway支援為Pod綁定公網IP。具體操作,請參見為Pod掛載獨立公網EIP。
對外使用的公網IP地址為Pod綁定的公網EIP地址。
Flannel僅支援Pod通過節點綁定的EIP訪問公網。具體操作,請參見綁定和解除綁定Elastic IP Address。
對外使用的公網IP地址為節點綁定的公網EIP地址。
訪問方式
注意事項
對外使用的公網IP地址
通過NAT Gateway訪問公網
使用Terway的叢集:SNAT規則中需要包含Pod的SNAT條目。
使用Flannel的叢集:SNAT規則中需要包含Pod所在節點的SNAT條目。
配置NAT Gateway,請參見為已有叢集開啟公網訪問能力。
NAT Gateway綁定的公網EIP地址。
通過節點綁定的EIP訪問公網(僅支援Flannel)
為Pod所在的ECS綁定公網EIP。具體操作,請參見綁定和解除綁定Elastic IP Address。
節點綁定的公網EIP地址。
通過Pod綁定的EIP訪問公網(僅支援Terway)
為Pod綁定公網EIP。具體操作,請參見為Pod掛載獨立公網EIP。
Pod綁定的公網EIP地址。
雙棧叢集:
在雙棧叢集中,Pod的IPv6地址雖然是公網地址,但預設情況下沒有為該地址配置公網頻寬。如需為Pod配置公網頻寬。具體操作,請參見為Pod配置IPv6公網頻寬。
訪問VPC中的資源
Pod訪問叢集中的其他資源,例如ECS、RDS、OSS等時,訪問目的端可能會有一些存取控制規則限制了訪問的來源,例如安全性群組、ACL規則或白名單機制等。如果限制了Pod訪問時使用的IP,就會出現網路不通的問題。您需要在存取控制規則中為Pod使用的IP設定允許存取:
Terway網路下,Pod使用自身的IP。VPC中其他資源所使用的安全性群組、ACL、白名單需要對Pod的IP允許存取。
Flannel網路下,Pod使用的所在節點的IP。VPC中其他資源所使用的安全性群組、ACL、白名單需要對Pod所在ECS的IP允許存取。
您也可以使用ack-kubernetes-webhook-injector自動設定雲端服務的白名單。具體操作,請參見為Pod動態配置阿里雲產品白名單。
訪問叢集使用的Server Load Balancer執行個體
Pod訪問叢集中Service使用的Server Load Balancer執行個體時,會使用短路機制,即負載平衡的IP會被轉換為對應後端的Pod IP直接存取,實際流量不會離開叢集。 在Terway v1.1.0及更早的版本中,使用IPvlan+eBPF加速模式的叢集並不支援這種機制,而會使用負載平衡的IP進行訪問。在Terway v1.2.0及之後的版本中,建立叢集支援該功能,但更早建立的叢集並不支援。如果您需要使用這種機制,請參見如何為Terway IPvlan叢集開啟叢集內負載平衡?。