k8s网络篇

Posted sjlinux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)。

k8s网络篇_userspace

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

k8s网络篇_iptables/ipvs_02

kube-proxy的三种模式:用户空间代理(userspace)模式、iptables、IPVS模式。

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来实现。

k8s网络篇_iptables/ipvs_03

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

k8s网络篇_kube-proxy_04

以上是关于k8s网络篇的主要内容,如果未能解决你的问题,请参考以下文章

Docker 与 K8S学习笔记—— 自定义容器网络

k8s常用命令

k8s常用命令

Docker容器网络-实现篇

k8s 入门系列之集群安装篇

k8s入门系列之集群安装篇