k8s网络篇

知识为进步之母,而进步又为富强之源泉。这篇文章主要讲述k8s网络篇相关的知识,希望能为你提供帮助。
pod网络
每个node节点有一个物理网卡eth0,同时也会虚拟出一个网桥cbr0,每个node的网桥IP是唯一的。每个pod的IP是和虚拟出来的网桥在同一网段,pod里的container(容器)通过localhost交互,他们共享pod的网络。同一node上的pod之间的交互式通过虚拟的网桥进行,不同node上的pod也是可以通信的,k8s会添加相应的路由规则。比如,当你访问10.0.1.0/24网段的pod时,它的下一跳是改pod所在的node(10.100.0.2)。

service网络:和pod网络是不同的,是不同的网段。

kube-proxy的三种模式:用户空间代理(userspace)模式、iptables、IPVS模式。
【k8s网络篇】userspace模式:服务发现:k8s首先为service分配一个clusterip,clusterip、pod、端口等信息会注册到API server里(etcd),kube-proxy会监听API server里的变化,并同步给netfilter,生成相应的iptables规则,并将相应的请求包转发给自己(kube-proxy)。服务请求:首先解析service名对应的clusterip,然后通过虚拟网桥转发到netfilter,netfilter会把请求包转发给kube-proxy,请求转发是kube-proxy来实现。


iptables/IPVS模式:kube-proxy主要用途是将service信息同步给netfilter,netfilter创建相应iptables规则,当请求过来时,netfilter修改iptables直接转发请求。


    推荐阅读