自研CNI IPAM插件 解决K8s功能问题

首先,在功能方面,Kubernetes 网络模型由于IP不固定,无法对IP资源进行精细管控,无法使用基于IP的监控和基于IP的安全策略,此外,一些IP发现的服务部署十分困难,给运维人员增加了很大的工作难度。例如由于IP不固定,令很多采用IP固定来做的传统监控和审计机制全部失效。此外,很多软件是对MAC地址进行授权,IP地址不固定无法购买授权,IP固定的需求在一定场景下客观存在。

为了解决这一问题,灵雀云把IP当做重要资源,进行单独管理。灵雀云自研的CNI IPAM 插件,实现了IP导入和IP权限管理功能,可以进行网段的添加和删除,可在Kubernetes进行网段的精细化配置。例如,给某个业务或者某几个用户分配一个网关,先对IP进行网关设置,路由设置以及DNS设置;有了网段之后,进行IP添加或删除,哪些IP可用都可以由管理员指定,经过权限和配额之后顺利创建服务。

IPVS解决K8S大流量下性能线性下降问题

其次,在性能方面,由于Kubernetes最早是基于Iptables来做的,Iptables 没有增量更新功能,更新一条规则需要整体flush,更新时间长,这段时间之内流量会有不同程度的影响;Iptables规则串行,没有预料到Kubernetes这种在一个机器上会有很多规则的情况,流量需要经过所有规则的匹配,匹配之后再进行转发,否则对时间、CPN和内存都是极大的消耗,尤其在大规模情况下对性能的影响十分明显。

刘梦馨介绍指出,Kubernetes升级到1.8或1.9版本以后,安装时可以选择IPVS模式,它是对Iptables的替换,在IPVS模式下添加规则是增量式的,不会强制进行全量更新,也不会进行串行的匹配,会通过一定的规则进行哈希map映射,很快地映射到对应的规则,不会出现大规模情况下性能线性下降的状况。目前,IPVS在Kubernetes社区仍处于试用阶段,刘梦馨表示,灵雀云已经开始试用IPVS功能,从使用情况来看,性能十分稳定,预计很快会将方案推广给用户。

自研OpenResty Ingress 解决K8S稳定性问题

最后,在稳定性方面,Kubernetes网络缺少健康检查功能,NodePort 屏蔽了Pod的直接访问,上层健康检查失效,网络分区、网络问题导致的转发异常时有发生。

灵雀云采用自研的OpenResty Ingress,方便新增功能,可以进行多端口监听。官方的Nginx Ingress只能监听80和43端口,但很多客户要对更多的端口进行监听,如根据端口区分的服务,灵雀云对此进行了一些改动,其自研的Ingress支持多端口功能。另外,原始Ingress的转化功能较少且配置复杂,需要不断更改Nginx config。对于reload,灵雀云用OpenResty实现lua的代码库,在lua的代码里进行流量调度,并设定了特定的DSL流量调度语言,可以通过简单的程序代码实现特定的流量规则,在Ingress流量规则方面进行了丰富扩展。

在演讲的最后,刘梦馨列举了一个用简单程序代码实现特定流量规则的实例:

规则:域名是 www.baidu.com 或者 baidu.com,路径是 /search, 源 IP 为 114.114.114.114,header 中 uid 在 100 到 999 或者 10000 到 11000 之间的请求

(AND (IN HOST www.baidu.com baidu.com) (EQ URL /search) (EQ SRC_IP 114.114.114.114) (OR (RANGE HEADER uid 100 999) (RANGE HEADER uid 10000 11000)))

可以看出,只需简单的配置域名、路径、特定范围内的IP等信息,Dsl就可以实现比较复杂的规则。

灵雀云是一家专注容器服务和企业级PaaS的服务商,始终保持着对技术的敏锐和前瞻性理解,在容器领域,灵雀云是国内最早将Kubernetes产品化的专业服务商,推出了基于Kubernetes的产品Alauda EE,打造客户容器环境核心系统以及在DevOps和微服务方面的最佳实践。未来,灵雀云将依托强大的产品和服务能力,为传统企业数字化转型保驾护航。

Kubernetes 网络改进的三项实践分享的更多相关文章

  1. 百度APP移动端网络深度优化实践分享(三):移动端弱网优化篇

    本文由百度技术团队“蔡锐”原创发表于“百度App技术”公众号,原题为<百度App网络深度优化系列<三>弱网优化>,感谢原作者的无私分享. 一.前言 网络优化解决的核心问题有三个 ...

  2. 百度APP移动端网络深度优化实践分享(二):网络连接优化篇

    本文由百度技术团队“蔡锐”原创发表于“百度App技术”公众号,原题为<百度App网络深度优化系列<二>连接优化>,感谢原作者的无私分享. 一.前言 在<百度APP移动端网 ...

  3. 百度APP移动端网络深度优化实践分享(一):DNS优化篇

    本文由百度技术团队“蔡锐”原创发表于“百度App技术”公众号,原题为<百度App网络深度优化系列<一>DNS优化>,感谢原作者的无私分享. 一.前言 网络优化是客户端几大技术方 ...

  4. 灵雀云Kube-OVN:基于OVN的开源Kubernetes网络实践

    近日,灵雀云发布了基于OVN的Kubernetes网络组件Kube-OVN,并正式将其在Github上开源.Kube-OVN提供了大量目前Kubernetes不具备的网络功能,并在原有基础上进行增强. ...

  5. 三十一、kubernetes网络介绍

    Kubernetes 网络介绍 Service是Kubernetes的核心概念,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上 ...

  6. DEVOPS落地实践分享

    DEVOPS落地实践分享 转载本文需注明出处:微信公众号EAWorld,违者必究. 引言: DevOps的理念已经说了很多年,其带来的价值逐渐被接受,很多企业也逐渐引入了DevOps.目前普元DevO ...

  7. Dropbox可伸缩性设计最佳实践分享

    http://www.infoq.com/cn/news/2012/11/dropbox-scale-bestpractice Dropbox的运维工程师Rajiv,跟大家分享了可伸缩性设计的最佳实践 ...

  8. 让互联网更快:新一代QUIC协议在腾讯的技术实践分享

    本文来自腾讯资深研发工程师罗成在InfoQ的技术分享. 1.前言 如果:你的 App,在不需要任何修改的情况下就能提升 15% 以上的访问速度,特别是弱网络的时候能够提升 20% 以上的访问速度. 如 ...

  9. VNF网络性能提升解决方案及实践

    VNF网络性能提升解决方案及实践 2016年7月 作者:    王智民 贡献者:     创建时间:    2016-7-20 稳定程度:    初稿 修改历史 版本 日期 修订人 说明 1.0 20 ...

随机推荐

  1. 【转】WPF Template模版之DataTemplate与ControlTemplate(一)

    WPF系统不但支持传统的Winfrom编程的用户界面和用户体验设计,更支持使用专门的设计工具Blend进行专业设计,同时还推出了以模板为核心的新一代设计理念. 1. 模板的内涵 作为表现形式,每个控件 ...

  2. java 中 热部署与卸载关系

    今天发现早年在大象笔记中写的一篇笔记,之前放在ijavaboy上的,现在它已经访问不了了.前几天又有同事在讨论这个问题.这里拿来分享一下. 在web应用开发或者游戏服务器开发的过程中,我们时时刻刻都在 ...

  3. php -- 断点调试 之 选择合适的xdebug

    这里不讲如何在不同的ide里安装断点调试,讲一个不起眼却很容易犯的错误: 如何寻找适合你的环境的xdebug! 不要小看这个问题,如果说xdebug都错了,你再怎么安装断点调试,都不会成功,反而还找不 ...

  4. Unity编辑器中分割线拖拽的实现

    GUI splitter control How can I make a GUI splitter control, similar to the splitter the console has? ...

  5. Tensorflow r1.8安装C++接口(兼容OpenCV3)

    与之前一样,直接走medium的传送门:https://medium.com/@fanzongshaoxing/use-tensorflow-c-api-with-opencv3-bacb83ca56 ...

  6. iOS - User Agent 的应用和设置

    UA在项目中的应用 给项目的webview或项目中的接口请求加一个区分,用来区别是iOS端访问.android访问还是在浏览器访问的,这时需要添加User Agent (http请求 header中的 ...

  7. CoAP 协议解析说明(转)

    CoAP 协议全面分析 HTTP与COAP 请求与响应示例 HTTP请求(文本格式) POST https://getman.cn/echo HTTP/1.1 User-Agent: Fiddler ...

  8. 解决Office 2016客户端如何同SharePoint Server2016安装在一起

    前言 Microsoft Office 2016 客户端默认使用新式验证. 在某些配置中,新式验证不受安装有 SharePoint Server 2016 的 Office 2016 客户端的支持,例 ...

  9. python数据库操作

    python操作数据库应该比java更简单些,连接数据库需要有驱动,pcat就推荐自己遇到的3个模块:mysql.connector.sqlalchemy.MySQLdb

  10. react使用apollo简单的获取列表

    react yarn add apollo-boost apollo-client react-apollo apollo-cache-inmemory apollo-link-http graphq ...