image.png

1. 什么叫扁平的网络空间?

  • 所有的Pod都可以通过对方的IP可以直接到达,其实底层有转换机制

    2.构建K8s的前提

  • 首先要创建扁平的网络空间(比较难做到,需要Pod容器打通),flannel可以实现

    3.同一个Pod的多个容器互相访问

  • 同一个Pod,供共用pause的网络栈,通过localhost访问

  • overlay Network

image.png

4.Flannel

image.png

5.Flannel 怎么通过容器ip访问

image.png

  • 安装Flanneld的守护进程,监听后期转发和转换数据包的端口
  • Flanneld启动后,会开启一个网桥Flannel0,来收集docker0转发的数据报
  • docker0 会分配自己的ip到自己的Pod上
  • 同一个主机的不同Pod互相访问的话走的是docker0的网桥,因为都在同一网桥下的子IP中
  • 难点

    • 跨主机,通过对方的IP到达
      • 目的:web app2 发送数据包到Backend
      • 写源地址,目标地址
      • 因为不是同一个网段,数据包会发到网关Docker0,Docker0把数据包抓到Flannel0,这里有路由表记录在etcd获取到写入到当前的主机判断路由的哪台机器192.168.66.11,
      • 到flanneld后会对数据包封装
      • 目标flanneld解封直到Backend

        6. Flannel和ETCD(非常非常重要)的关联

        image.png
  • Flannel在启动后会在ETCD插入可访问的网段

  • ETCD记录哪个网段分配到了哪台机器上
  • 防止已分配的网段再被Flannel利用分配给其他node节点

    7.知识点总结

    image.png

8.组件通讯示意图

image.png