苏宁容器云Kubernetes + Contiv网络架构技术实现

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 条评论)
   
验证码:

相关文章

推荐文章

'); })();