能否明确一下问题,我按照我的理解是k8s的网络组件(Flannel,calico等)选择?K8s有多种网络组件,每种网络的组件都有各自的优劣。如果是云原生的应用,建议采用SDN的组件,方便故障迁移。如果是传统的应用,建议选择IP端口映射的网络方案,方便兼容传统的tcp应用。同时选择网络组件时,网络监控的链路最终的能力也是需要考虑的。
收起按照一般的组网思路来做是这样的:规划好集群网段,即svc和pod的网段,范围可以大一点但是一定不能和现有的网段冲突;选择组网方式,在集群里面就有二层组网和三层组网的协议选择,可以考虑一下做大二层(vxlan)和ipip或bgp组网;最后就是根据你的其他需求来选择组件了。
收起这个问题应当是指容器网络,发表一点个人看法。
理想情况下,容器网络不应当再虚拟化一层,直接复用主机网络即可。当前各种容器网络实现,本质上是技术上限制导致,不是业务诉求。容器网络选择确实是企业使用容器的必须要面对的问题。
曾经有客户问,为什么不直接用Host Network?说实话当时还真有点反应不过来。不知道你在提这个问题的时候,是否有问过自己这个问题?
回到你这个问题,由于问题没有背景,只能通用的回答。分两种情况:基于容器提供PaaS平台,企业内部工作负载容器化。
第一种情况你必须提供当前主流的容器网络实现给用户选择,包括Overlay与Underlay两种模式,当前公有云厂商都有提供这两种模式,比如阿里云就提供了开源的Flannel与Terway自研网络插件,后者支持与VPC网络直通,效率更高。
第二种情况,建议就在物理机上跑容器,网络可以使用直通网络,可以考虑开源的实现,KubeRouter 是一个不错的选择,前提是你的基础网络环境开启BGP协议。
收起