最近發(fā)現(xiàn)k8s容器內(nèi)無法訪問內(nèi)網(wǎng)的負(fù)載均衡,直接訪問后端CVM也不行。
使用的是騰訊云的TKE和clb,clb后端負(fù)載了三個(gè)CVM服務(wù)器。
其他集群容器內(nèi)部都可以通過內(nèi)網(wǎng)訪問這個(gè)clb和cvm。
在排查了所有的安全組,防火墻限制,以及容器節(jié)點(diǎn)組件問題以后給騰訊云提交了一個(gè)工單。
最終原因是因?yàn)門KE容器的網(wǎng)段和CVM里面的docker網(wǎng)段沖突了導(dǎo)致無法訪問。
TKE的GlobalRouter網(wǎng)絡(luò)插件是讓容器內(nèi)網(wǎng)絡(luò)和VPC在同一個(gè)層面,這就導(dǎo)致了網(wǎng)絡(luò)并不是獨(dú)立的,所以和CVM里面的docker網(wǎng)段沖突了。
GlobalRouter 網(wǎng)絡(luò)模式是容器服務(wù) TKE 基于底層私有網(wǎng)絡(luò) VPC 的全局路由能力,實(shí)現(xiàn)了容器網(wǎng)絡(luò)和 VPC 互訪的路由策略。該網(wǎng)絡(luò)模式特征包含以下幾點(diǎn):
容器路由直接通過 VPC。
容器與節(jié)點(diǎn)分布在同一網(wǎng)絡(luò)平面。
容器網(wǎng)段分配靈活,容器 IP 段不占用 VPC 的其他網(wǎng)段。
我也看了下關(guān)于GlobalRouter的限制:
我在使用阿里云ACK的Terway網(wǎng)絡(luò)插件也是遇到過類似的問題,所以使用GlobalRouter、Terway這種類似插件盡量還是單獨(dú)用一個(gè)網(wǎng)段,不要使用172.16網(wǎng)段。
我的解決方案是配置CVM的公網(wǎng)IP進(jìn)行訪問或者更改docker容器網(wǎng)段。