Kubernetes CNI 介绍
CNI 简介CNI 组成
· CNI Plugin负责为容器配置网络,包括两个基本接口:
1)配置网络:AddNetwork(net NetworkConfig, rt RuntimeConf) (types.Result, error)
2)清理网络:DelNetwork(net NetworkConfig, rt RuntimeConf) error
· IPAM Plugin负责给容器分配IP地址,主要实现包括host-local和dhcp
Kubernetes Pod 中的其他容器都是Pod所属Pause下的容器网络,创建流程为:
常用CNI插件
Contiv对比
Contiv Macvlan性能对比数据
总带宽:10Gbit/s包大小:PPS 64Byte
吞吐量 1500Byte
Contiv 网络架构
Contiv是思科开源容器网络解决方案,同时支持CNI模型以及CNM模型。支持以下功能:
支持Tenant,支持租户隔离
支持多种网络模式
Network Policy
Network policy 描述了一组容器(Pod)上的网络资源使用、隔离策略、优先级等等。在Contiv中有两种类型的Network policies:
Bandwidth
Isolation
Contiv 与 Kubernetes 部署架构
Kubernetes集群Contiv集群、Etcd集群、租户Pod
使用的Bridge VLAN模式
实现多网络Driver支持
苏宁容器云Pod-IP固定实现原理
对Kubernetes支持的场景:Deployment、Stateful set、Replica set
对Kubernetes不支持的场景:DaemonSet
Pod-IP固定流程图
创建Pod:
重新调度Pod:
删除Pod:
苏宁容器云基于Contiv 双向限速实现
Pod 双向限速实现原理
上行:使用ovs中ingress方式、设置rate 和 burst、超过设置速率限制,直接简单丢弃
下行:使用netlink包,通过unix socket和内核通信;使用tbf限速方式,直接将规则作用在ovs port上
Pod 双向限速流程图
新建资源时,labels增加io.contiv.net-group: groupb检测app group中,是否关联Bandwidth Policies
如果关联Bandwidth Policies,则在创建port时,增加限速规则。
苏宁容器云基于Contiv 支持 etcd v3
苏宁容器云基于 Contiv 支持 SR-IOV
SR-IOV技术是基于硬件的虚拟化解决方案
SR-IOV标准允许虚拟化高效共享PCIe设备
可以获取与本机媲美的性能
Contiv支持SR-IOV要从代码级别做改造:增加sriovd驱动目录;仿造fakenetepdriver设计sriovd驱动;需要重新修改Contivinit,以便在初始化netplugin时,对sr-iov进行初始化;一个netplugin仅支持一种驱动,但是同一集群内可以有多种网络驱动。
| 留言与评论(共有 0 条评论) |