最近發現k8s容器內無法訪問內網的負載均衡,直接訪問后端CVM也不行。
使用的是騰訊云的TKE和clb,clb后端負載了三個CVM服務器。
其他集群容器內部都可以通過內網訪問這個clb和cvm。
在排查了所有的安全組,防火墻限制,以及容器節點組件問題以后給騰訊云提交了一個工單。
最終原因是因為TKE容器的網段和CVM里面的docker網段沖突了導致無法訪問。
TKE的GlobalRouter網絡插件是讓容器內網絡和VPC在同一個層面,這就導致了網絡并不是獨立的,所以和CVM里面的docker網段沖突了。
GlobalRouter 網絡模式是容器服務 TKE 基于底層私有網絡 VPC 的全局路由能力,實現了容器網絡和 VPC 互訪的路由策略。該網絡模式特征包含以下幾點:
容器路由直接通過 VPC。
容器與節點分布在同一網絡平面。
容器網段分配靈活,容器 IP 段不占用 VPC 的其他網段。
我也看了下關于GlobalRouter的限制:

我在使用阿里云ACK的Terway網絡插件也是遇到過類似的問題,所以使用GlobalRouter、Terway這種類似插件盡量還是單獨用一個網段,不要使用172.16網段。
我的解決方案是配置CVM的公網IP進行訪問或者更改docker容器網段。
贊
0
賞


