天天看點

k8s西遊記 - 變更網絡插件IP池

最近在另一個<code>k8s</code>叢集中,搭建了<code>kong</code>網關,在配置<code>OIDC</code>插件時,希望使用<code>Memcahe</code>代替<code>Cookie</code>來存儲會話資訊,于是把部署在同一區域網路<code>Memcahe</code>的内網IP,比如:<code>192.168.10.145</code>配置給了<code>kong</code>,發現<code>kong</code>居然不能通路這個IP,于是進入容器組,執行指令:<code>ping 192.168.10.145</code>,不通,what are you 弄啥呢?

k8s西遊記 - 變更網絡插件IP池

這可怎麼腫麼玩呢?

突然想到,在給<code>Kubernetes</code>配置網絡插件<code>Calico</code>時,初始化叢集時,使用了官方推薦C類IP池,即:192.168.0.0/16,而内網IP剛好符合C類IP池,可能就導緻此類IP始終不會被轉發到主機網絡,帶着這樣子的猜想,于是決定修改網絡插件的IP池。

<code>calicoctl</code>允許您從指令行建立、讀取、更新和删除Calico對象。有三種方式可以安裝此工具,參考連結:https://docs.projectcalico.org/v3.8/getting-started/calicoctl/install。

備注:其他安裝方式,請大家下去自行研究。

配置calicoctl連接配接到kubernetes API,這裡使用最簡單的指令行形式,如下:

備注:其他連接配接配置,請參考連結:https://docs.projectcalico.org/v3.8/getting-started/calicoctl/configure/kdd,大家下去自行研究吧。
備注:看到CIDR字段值,明白了吧,這裡就不贅述了。
備注:根據ipv4的指派範圍,一般分為A類、B類、C類,區域網路一般使用C類IP池,為了避免和k8s沖突,決定選擇B類IP池,即:172.16.0.0/16,關于IP池詳細劃分,請大家下去自行查閱資料。

添加<code>disabled: true</code>到<code>default-ipv4-ippool</code>,上面注釋位置。

備注:請大家下去自己完善周遊删除吧。

這一步會使用新的IP池重新配置設定容器組IP,如下:

如果所有的Pod IP都已正常配置設定,但是發現滿足舊IP池的IP位址還是無法ping通,也就是無法逃逸出k8s網絡,那麼請執行下面的指令吧:

如果有什麼疑問和見解,歡迎評論區交流。

如果你覺得本篇文章對您有幫助的話,感謝您的【推薦】。

如果你對k8s感興趣的話可以【關注我】,我會定期的在部落格分享我的心得。

未經允許,禁止轉載。

https://docs.projectcalico.org/v3.8/getting-started/calicoctl/install

https://docs.projectcalico.org/v3.8/getting-started/calicoctl/configure/kdd

https://docs.projectcalico.org/v3.8/networking/changing-ip-pools

做一個有底蘊的軟體工作者