k8s-网络-pod之间通信

k8s - 网络- pod 之间通信

分类:

  • pod之间: pod1与pod2同主机, pod1与pod3跨主机
  • Node与pod通信: Node1与pod1,与pod3跨主机通信

同一节点上的不同pod通信,通过做网络地址转换(NAT)

Node之间的pod通信,是通过 overlay network(覆盖网络)实现的

flannel覆盖网络

流程:

  • etcd 服务启动
  • 每个节点上的flannel启动,创建虚拟网卡flannle.1, etcd为每个节点的flannel分配唯一的ip
  • flannel配置docker0网桥,实际是通过修改docker启动参数–bip,这样每个节点上的docker网桥就分配了全局唯一的ip
  • flannel修改节点路由表,此时flannel虚拟网卡接管容器跨主机通信
[root@k8s-master pod]# ip addr show docker0
12: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:1f:b9:b5:c1 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
[root@k8s-master pod]# ip addr show flannel.1
14: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default 
    link/ether ea:a9:a7:b2:f3:fd brd ff:ff:ff:ff:ff:ff
    inet 10.244.0.0/32 brd 10.244.0.0 scope global flannel.1
       valid_lft forever preferred_lft forever
[root@k8s-master pod]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.226.2   0.0.0.0         UG    100    0        0 ens33
10.244.0.0      0.0.0.0         255.255.255.0   U     0      0        0 cni0

如:

节点ipdocker0网桥flannel.1网上pod
node-master192.168.xx.19172.17.0.1/1610.244.0.0/32pod1/10.244.0.20
node1192.168.xx.20172.17.0.1/1610.244.1.0/32pod2/10.244.1.22

很奇怪,我虚拟机上不同节点的docker0网桥居然是一样的,理论上来讲应该是不一样的??

举例

pod1(10.244.0.20)与pod2(10.244.1.22) 实现通信 流程

  • 数据包A从master节点 pod1 发出,发现 docker0 上没有对应的路由表,转发到docker0
  • docker0 网桥路由到 flannel.1网卡上(etcd中维护了docker0与flannel的路由表,但是我在etcd中没有找到。。
  • flannel.1网卡对数据包封装,通过隧道协议,默认是UDP,发送到node1节点上的 flannel.1网卡上
  • node1 的flannel.1将数据转发到 node1上的docker0网桥
  • node1 上的docker0 根据路由表 将数据包转发给 pod2
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值