Flannel vxlan模式跨主机通信原理
在同一个节点上的pod 流量通过cni网桥可以直接进行转发;
在需要跨主机访问时,数据包通过flannel(隧道) 知道另一边的mac地址,就可以拿到另一边的ip地址,然后构建常规的以太网数据包,承载着内部数据帧出去,另一边在封装常规的以太网头部的时候,需要对端的ip和mac;对端的IP和mac可以直接在arp表里面获取,数据包到达另一边开始解包,发现有flannel.1会交给这边的lflannel.1这个设备来进行解包,最后通过网桥直接进行转发。
flannel网络
falnnel支持多种后端:
flannel网络插件(host-gw模式)
重启pod以生效
此时每个网段都是静态路由
删除flannel插件,包括所有节点上的flannel配置文件,避免冲突
calico网络插件
下载部署文件
修改镜像路径
拉取镜像
上传镜像到harbor
部署calico
每个节点都创建了配置文件
集群重启后测试网络
添加网络策略
控制对象是具有app=myapp-v1标签的pod
此时访问svc是不通的
在给测试pod添加上指定标签后就可以进行访问
如果只能访问到一个节点,就需要重启一下
限制namespace流量
给namespace添加指定标签后访问
同时限制namespace和pod
限制集群外部流量