容器网络
文章平均质量分 89
cloudvtech
这个作者很懒,什么都没留下…
展开
-
CNCF CNI系列之一:浅谈kubernetes的网络与CNI(以flannel为例)
一、前言kubernetes作为container的orchestration框架,主要的功能是在更高的层次对kubernetes服务和承载服务的实体(container)的部署、配置、可靠性进行管理,对应有namespace、POD、deployment、service等kubernetes的资源供application服务的提供者进行不同粒度上的配置和控制。同样,在网络层面,kubernete...原创 2018-04-01 19:35:52 · 9066 阅读 · 1 评论 -
kubernetes系列之三:kubernetes使用CNI macvlan作为网络插件
一、前言macvlan是kernel新支持的特性之一,需要Linux kernel v3.9–3.19和4.0+的支持。这种模式所配置的container网络同主机网络在同一个LAN里面,可以具有和主机一样的网络能力。使用macvlan可以在主机的一个网络接口上配置多个虚拟的网络接口,这些网络接口有自己独立的MAC地址和IP地址。macvlan 下的container网络和主机在同一个网段中,共享...原创 2020-04-14 19:46:50 · 15822 阅读 · 2 评论 -
Openshift的网络之二:SDN master代码分析
一、前言Openshift基于OVS SDN的CNI网络方案具有一个以etcd key-value store为中心master节点和若干worker节点,Openshift SDN master在etcd维护一个worker节点和SDN网络相关的数据库。master主要的责任如下:当Openshift加入或者删除一个worker节点,master会监听到这个事件,为这个节点分配或者收回子网段,将...原创 2018-04-23 09:18:29 · 1015 阅读 · 0 评论 -
kubernetes系列之四:kubernetes的源地址保持(source IP preserve)
一、前言kubernetes提供服务的实体(POD)具有内部网络空间的地址,外部无法直接访问,所以kubernetes提供了多种对外暴露POD服务的方法。这些方法都借助于kubernetes的service的概念,将一系列具有等同服务能力的POD组成一个抽象的服务实体,这个服务实体具有一个虚IP,这个虚IP可以是kubernetes cluster内部网络可达的IP(对应cluster servi...原创 2018-04-13 18:47:02 · 5571 阅读 · 0 评论 -
容器云负载均衡之一:容器云平台负载均衡解决方案的一些思考
一、前言在典型的网络服务模型中,请求流量/响应流量(Req/Res)比是很小的一个值;在直播、高清视频等视频多媒体服务中,请求响应流量比将更小(几十KB的请求V.S.几十MB的返回)。对于这样的应用场景,大量的请求可以通过负载均衡器进行接入,但是响应数据包是无法在某个中心节点进行汇聚在返回客户的。所以针对这种小请求响应比的服务,必须使用在响应返回路径没有汇聚点的负载均衡机制。根据响应数据包返回路径...原创 2018-05-01 09:23:46 · 4152 阅读 · 0 评论 -
容器云负载均衡之二:从IPVS DR模式下director不能访问VIP问题的探究
一、前言在《IPVS概览》一文中提到IPVS的Direct Routing模式是一个扩展性比较好的负载均衡方式。但是在默认的情况下,IPVS的Direct Routing模式需要指定一个Director,这个director负责绑定并对外暴露VIP,这个director所在的node上的进程是无法访问VIP获取后端real service的服务的。在一般系统中,这可能不是问题,因为IPVS dir...原创 2018-05-02 07:29:08 · 2173 阅读 · 0 评论 -
容器云负载均衡之三:使用iptables对IPVS Direct Routing模式进行端口转换
一、前言在cloud环境中,不是所有的application都有使用80端口这种特权端口的权限;但是在IPVS direct routing模式下,VIP监听的端口必须要保持和后端real server上的application监听的端口一致,见文章http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.rewrite_ports.html:本...原创 2018-05-03 07:37:36 · 2176 阅读 · 0 评论 -
Openshift的网络之六:Router和ipfailover
一、前言在文章《Kubernetes如何利用iptables对外暴露service》中提到了部署在Kubernetes上的服务对外暴露的方法,比如通过host port、cluster service、node external IP、external load balancer、node port等,这都是借助于iptables的功能在三层和四层进行的。在Openshift中,提供了另外一种基于...原创 2018-04-30 06:58:19 · 2081 阅读 · 0 评论 -
容器云负载均衡之六:将IPVS容器化并扩展为Openshift的服务
一、前言在文章《容器云平台负载均衡解决方案的一些思考》中提到“基于kubernetes nodeport service的IPVS负载均衡”非常适合基于Openshift/kubernetes的容器云的数据层面的负载均衡解决方案。本文对将IPVS容器化以及将IPVS用于部署在Openshift平台的服务的负载均衡所要涉及的技术点进行简要分析。转载自https://blog.csdn.net/clo...原创 2018-05-24 09:01:09 · 870 阅读 · 0 评论 -
容器云负载均衡之五:使用keepalived管理基于容器的IPVS
一、前言IPVS的director上会绑定一个VIP,这个VIP是下游客户的唯一接入点,所以这个VIP需要满足高可用性的要求。另外,不同的VIP策略需要根据后端real server的部署状态进行更新。Keepalived是一个开源软件,主要提供loadbalancing(负载均衡)和 high-availability(高可用)功能,负载均衡实现需要依赖Linux的虚拟服务内核模块(IPVS),...原创 2018-05-06 09:40:58 · 1370 阅读 · 0 评论 -
容器云负载均衡之七:使用IPVS作为Openshift外部负载均衡解决方案的性能测试
一、前言在文章《将IPVS容器化并扩展为Openshift的服务》中设计的适用于Openshift/Kubernetes平台的大流量负载均衡器在实验室进行了性能测试,从而验证了基于这个负载均衡解决方案的部署,能够在现有的设备条件下(一个物理网卡,最多只能绑定8个CPU给8个队列,而有些物理网卡可以扩展更多的CPU给网卡队列),具有接近裸机的单机能力和具有接近线性的横向扩展性的能力。转载自https...原创 2018-05-25 08:39:27 · 1073 阅读 · 0 评论 -
kubernetes系列之十二:POD多网卡方案multus-cni之概览
一、前言在生产环境下,为了保证安全性和性能,不同功能的网络进行隔离是一个必要的措施,比如管理网络、控制网络和数据网络的隔离(必要情况下,数据网络的data in和data out网络也要进行隔离)。这种隔离在物理机和虚拟机里面很容易实现,但是在POD里面,如果使用Kubernetes这样的容器云管理平台,则会面临一些限制,尤其是现在Kubernetes的POD默认还不支持多网卡设置,但是业界对PO...原创 2018-05-12 16:25:06 · 14790 阅读 · 3 评论 -
kubernetes系列之十三:POD多网卡方案multus-cni之通过CRD给POD配置自由组合网络
一、前言在文章《kubernetes POD多网卡方案multus-cni之一:概览》中,可以看到通过配置multus,可以为一个POD配置多个网络接口。根据multus主页上的描述,现在可以使用kubernetes的CDR来配置network object,允许POD对网络进行选取,在POD deployment定义中,可以指定需要使用哪个或者那些multus所管理的网络,来满足这种根据POD功...原创 2018-05-13 08:09:12 · 10209 阅读 · 1 评论 -
DPDK系列之十一:容器云的数据通道加速方案概览
一、前言原创 2018-06-08 10:27:05 · 4550 阅读 · 0 评论 -
Openshift的网络之五:OVS SDN CNI网络流控机制
一、前言OVS使用Linux内核自带的traffic-control机制进行流量控制以实现SDN QoS,一般的内核都会将"ingress qdisc"(Queueing Disciplines)编译在内。ingress_policing_rate这个网络接口最大的发包速率ingress_policing_burst最大发包率之外的额外发包能力,以应对突发流量Openshift由于使用OVS作为S...原创 2018-04-29 15:04:25 · 2996 阅读 · 0 评论 -
Openshift的网络之四:openshift-ovs-multitenant模式代码分析
一、前言ovs-multitenant模式与ovs-subnet模式相比,对每个project设置了VxLAN的VNID,只有在同一个project里面的POD发出的数据包只有打上一样的VNID,才能为这个project里面其它数据包接收。这为openshift的多租户模式提供了project级别的较粗粒度的网络隔离。在这种模式下,SDN进程需要监听Openshift project的加入和删除事...原创 2018-04-27 18:23:02 · 1804 阅读 · 0 评论 -
Container网络方案之macvlan
一、方案分析在默认container 运行时(比如docker)的网络配置下,所有的container的数据包都会通过一个默认的bridge外加iptables的NAT进出,对于大流量或者大TPS的程序,基于Linux内核功能的bridge和NAT无疑会成为容器网络能力的瓶颈,可以使用macvlan的功能来提高container的网络能力。转载自https://blog.csdn.net/clou...原创 2018-03-26 14:08:28 · 3310 阅读 · 0 评论 -
CNCF CNI系列之三:flannel vxlan模式工作原理浅析
一、前言flannel为container提供网络解决方案。flannel有一个基于etcd cluster的数据交换中心,每个节点上有flannel service,每个节点被分配不同的网段,每个节点上的container从该网段获取IP。一个节点之间通过一个overlay网络保证container可以互联互通。转载自https://blog.csdn.net/cloudvtech二、flann...原创 2018-04-04 08:08:15 · 5987 阅读 · 2 评论 -
CNCF CNI系列之二:CNI(container network interface)概览(以macvlan为例)
一、前言CNCF的CNI是一个接口规范,这个规范定义了输入、输出的标准和调用的接口。只要调用CNI插件的实体遵守这个规范,就能从CNI拿到满足网络互通条件的网络参数(如IP地址、网关、路由、DNS等),这些网络参数可以配置container实例。本文通过分析手动调用macvlan CNI的过程,了解CNI接口规范的运行模式。转载自https://blog.csdn.net/cloudvtech二、...原创 2018-04-03 20:57:45 · 1775 阅读 · 0 评论 -
Container网络互联方案汇总
前言网络的职责是将散落在不同范围的终端实体相互联通,并提供复杂的策略管理能力。根据终端实体散布的范围不同,可以由不同的网络设备和功能进行辅助,而路由和封装是最为常见的网络连接手段。路由方式适合大规模动态扩展并且发送效率较高,但是管理复杂度也更高,单个网络接入点需要感知周围网络的状态;封装方式配置相对简单,但是需要有耗费计算资源的封装步骤,并且不太利于创建动态可扩展的大规模网络。Container网...原创 2018-03-27 11:21:02 · 651 阅读 · 0 评论 -
kubernetes系列之六:安装kubernets v1.10.0和ipvs mode kube-proxy
一、前言kubeadm是Kubernetes官方推出的快速部署Kubernetes集群工具,kubeadm通过将Kubernetes相关服务容器化以简化部署过程。在kubernetes 1.8以上的版本中,对于kube-proxy组件增加了除iptables模式和用户模式之外ipvs模式的支持。通过ipvs的NAT模式,对访问k8s service的请求进行虚IP到POD IP的转发。本文在kub...原创 2018-04-14 18:50:06 · 6633 阅读 · 1 评论 -
kubernetes系列之五:IPVS概览
一、前言IPVS是基于TCP四层(IP+端口)的负载均衡软件。IPVS会从TCP SYNC包开始为一个TCP连接所有的数据包建立状态跟踪机制,保证一个TCP连接中所有的数据包能到同一个后端。所以IPVS是基于TCP状态机进行控制管理,只感知TCP头而不对TCP的payload进行查看;因此,对IPVS后端服务器集群还有一个假定,那就是所有后端都具有同样的应用层的服务功能,但是由于IPVS可以给后端...原创 2018-04-17 22:05:20 · 13232 阅读 · 0 评论 -
Container网络性能比较:bridge+NAT方案与macvlan方案 (1) 性能测试系统配置
一、前言docker container的原生网络解决方案是bridge+NAT,而借助pipework这类工具,可以为container快速配置macvlan网络。本文利用HLS格式多媒体流对这两个方案的网络数据转发性能进行测试。相关的系统参数如下:物理机配置:128GB内存,CPU(Processor Sockets 2, Processor Cores per Socket 12, Hype...原创 2018-03-28 15:08:21 · 1647 阅读 · 0 评论 -
Container网络性能比较:bridge+NAT方案与macvlan方案 (2) 性能测试结果分析
一、前言在测试过程中,对于HLS流媒体服务,最重要的衡量量是并发用户数、延时和吞吐量。要追求的优良的性能是指能在一定数目的并发用户情况下,在应用可接受的时延内,达到一定的数据吞吐量。过多的并发用户会导致时延的指数级上升,虽然此时吞吐量未必会下降,但不是一个可以接受的结果。在测试过程中,Spirent作为模拟客户端,跟标准的客户端player还略有不同,标准客户端在获取HLS的片段的时候,会集中一段...原创 2018-03-30 09:54:25 · 2237 阅读 · 0 评论 -
kubernetes系列之一:Kubernetes如何利用iptables对外暴露service
一、前言Kubernetes利用iptables达成以下两个目的:对外暴露POD和服务(通过host port、cluster service、node external IP、external load balancer、node port)简单的负载均衡在Kubernetes worker node的iptables的NAT表的prerouting和output 链表会出现如下规则作为kube...原创 2018-03-31 19:06:46 · 4233 阅读 · 0 评论 -
CNCF CNI系列之四:flannel host-gw模式工作原理浅析
一、前言flannel作为一个container互联解决方案,不仅提供基于封装类型的互联技术,也提供基于路由技术的互联技术,比如host-gw模式。host-gw模式通过建立主机IP到主机上对应flannel子网的mapping,以直接路由的方式联通flannel的各个子网。这种互联方式没有vxlan等封装方式带来的负担,通过路由机制,实现flannel网络数据包在主机之间的转发。但是这种方式也有...原创 2018-04-05 09:23:06 · 8801 阅读 · 0 评论 -
kubernetes系列之二:iptables概览
一、前言在基于虚拟化的云系统中,网络虚拟化是不可或缺的关键部分。虚拟化的网络可以自由的在本地进行基于单机的网络配置或者借助一些互联技术(underlay、overlay或者点对点技术)在虚拟网络内部空间实现跨节点和数据中心的网络互联,但是如果虚拟网络内部的服务要对外进行暴露,就不得不借助地址转换或者端口转换等数据包修改技术。而在现有的container管理框架中,iptables更是承担了服务暴露...原创 2018-04-06 07:59:16 · 2411 阅读 · 0 评论 -
Openshift的网络之一:概览和基本配置
一、前言Openshift可以看作是对于kubernetes和docker解决方案的更高级别封装,提供了PAAS解决方案级别的基础设施,包括:镜像构建和registry存储服务部署和暴露(Router)基于OVS SDN的overlay CNI实现更细粒度的权限控制(RABC)在我们的lagecy应用向容器云解决方案迁移的过程中,在使用kubernetes方案作为过度之后,最终使用了Openshi...原创 2018-04-22 11:37:15 · 5043 阅读 · 0 评论 -
Openshift的网络之三:openshift-ovs-subnet代码分析
一、前言Openshift基于OVS SDN的CNI网络方案中,存在一个SDN master节点,而Openshift的所有工作节点也都是SDN的工作节点。SDN工作节点在启动的时候先向master注册(建立etcd子节点),master监控到这个节点注册信息之后,会为自节点分配一个子网写入到etcd该子节点下面,然后自节点利用这些信息在节点本地进行初始化配置:建立OVS bridge设备br0,...原创 2018-04-24 13:19:09 · 2017 阅读 · 0 评论 -
kubernetes系列之二十:Kubernetes Calico网络插件
一、前言Calico作为Kubernetes的CNI插件可以支持underlay和overlay模式的网络互联;在BGP信息的交互方式上也同时支持中心服务方式和grid mesh方式;但是Calico的基于underlay路由的网络模式要求网络基础设施对于BGP协议要有支持,所以在私有数据中心进行部署是最佳场景。当然由于在AWS也有Kubernetes的部署,AWS的技术人员也提到过AWS的虚...原创 2020-03-28 10:35:44 · 1994 阅读 · 0 评论