k8s-cni网络 10

k8s-cni网络 10_第1张图片k8s-cni网络 10_第2张图片

Flannel vxlan模式跨主机通信原理

k8s-cni网络 10_第3张图片

在同一个节点上的pod 流量通过cni网桥可以直接进行转发;

k8s-cni网络 10_第4张图片在需要跨主机访问时,数据包通过flannel(隧道) 知道另一边的mac地址,就可以拿到另一边的ip地址,然后构建常规的以太网数据包,承载着内部数据帧出去,另一边在封装常规的以太网头部的时候,需要对端的ip和mac;k8s-cni网络 10_第5张图片对端的IP和mac可以直接在arp表里面获取,数据包到达另一边开始解包,发现有flannel.1会交给这边的lflannel.1这个设备来进行解包,最后通过网桥直接进行转发。

flannel网络

k8s-cni网络 10_第6张图片

falnnel支持多种后端:

k8s-cni网络 10_第7张图片

flannel网络插件(host-gw模式)

k8s-cni网络 10_第8张图片

重启pod以生效k8s-cni网络 10_第9张图片

此时每个网段都是静态路由

删除flannel插件,包括所有节点上的flannel配置文件,避免冲突

k8s-cni网络 10_第10张图片


calico网络插件

k8s-cni网络 10_第11张图片

下载部署文件

k8s-cni网络 10_第12张图片

修改镜像路径

拉取镜像

k8s-cni网络 10_第13张图片

上传镜像到harbor

k8s-cni网络 10_第14张图片k8s-cni网络 10_第15张图片

部署calico

k8s-cni网络 10_第16张图片

每个节点都创建了配置文件

k8s-cni网络 10_第17张图片

集群重启后测试网络


添加网络策略

k8s-cni网络 10_第18张图片k8s-cni网络 10_第19张图片

控制对象是具有app=myapp-v1标签的pod

此时访问svc是不通的

k8s-cni网络 10_第20张图片k8s-cni网络 10_第21张图片

在给测试pod添加上指定标签后就可以进行访问

k8s-cni网络 10_第22张图片k8s-cni网络 10_第23张图片

如果只能访问到一个节点,就需要重启一下

限制namespace流量

k8s-cni网络 10_第24张图片k8s-cni网络 10_第25张图片

给namespace添加指定标签后访问

k8s-cni网络 10_第26张图片k8s-cni网络 10_第27张图片

同时限制namespace和pod

k8s-cni网络 10_第28张图片k8s-cni网络 10_第29张图片

限制集群外部流量

k8s-cni网络 10_第30张图片k8s-cni网络 10_第31张图片

你可能感兴趣的:(kubernetes,容器,云原生)