一文带你理解云原生( 十 )


配置文件:标准部分:cniVersion , Name , Type , IPAM 。
输出:设备列表、IP 资源列表、DNS 信息 。
插件应用如:
Bridge:Linux 网桥 CNI 实现 , 采用网卡对链接网桥和容器;
Host-device:将主机设备直接移动到容器命名空间中;
PTP:创建虚拟网卡对 , 采用路由方式实现对外互联;
MacVlan:网卡多 Mac 地址虚拟技术完整支持 vlan;
Vlan:Vlan 设备 CNI 实现 , 允许容器和主机分属不同 LAN;
IPVlan:网卡上基于 IP 实现流量转发 。
3.3.3 Overlay 网络-Flannel 方案
一文带你理解云原生
本文插图
CoreOS(被 Red Hat 收购)为 Kubernetes 专门定制设计的 overlay 网络方案 。
03 层网络方案实现:在每台主机部署 flanneld 进程实现网段分配 , 路由控制 , 采用多种转发机制实现流量跨机交互 。
Flannel 职责
子网管理:每个主机分配唯一的子网;
互联方式:为同 Overlay 平面容器分配唯一 IP 。
Etcd 存储:容器之间路由映射;
SubNetManager:子网资源划分、IP 资源申请释放的接口定义;
Backend:针对网络互联方式的接口定义 。
UDP , UDP 封包转发 , 建议仅调试使用;
VxLAN(建议) , 使用内核 vxlan 特性实现封包转发;
Host-GW , 主机 2 层互联情况下较高性能互联方式;
IPIP , 使用 IPIP 隧道完成封包和转发;
IPSec , 使用 IPSecurity 实现加密封包转发;
AliVPC , 对接阿里云 VPC 路由表实现网络互联;
AWSVPC , 对接 Amazon VPC 路由表实现网络互联 。
一文带你理解云原生
本文插图
Flannel 的单机互联方案:
子网分配:充当虚拟交换机/网关角色 , 连接所有本机容器 , 完成虚拟子网构建;
Bridge:通过 NAT 借助主机网络实现外部服务访问;
Veth pair:一端设置到容器网络 namespace , 一端链接 bridge 实现容器接入网络;
对外访问:为每个节点分配独立不冲突的 24 位子网 。
一文带你理解云原生
本文插图
Overlay 解决方案:跨 Node 的 Pod 之间通信通过 Node 之间的 Overlay 隧道 。
职责:路由控制 , 数据转发 。
主要流程:
本节点设置:设备创建、本地路由创建、回写本地信息;
监听其他节点信息:更新 ARP 信息、更新 FDB、更新路由信息 。
3.3.4 Overlay 网络-Calico 方案
一文带你理解云原生
本文插图
一文带你理解云原生