自研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 网络改进的三项实践分享

Kubernetes 网络改进的三项实践分享相关推荐

  1. 北京弘易信泰 网络数据抓取技术实践分享

    弘易信泰,作为大数据产品厂商,长期关注业界数据抓取技术的变化,当前,互联网数据以前所未有的态势迅猛增长,对于信息化技术而言,海量数据的抓取技术尤为重要,在数据迅速发展的大背景下,中国政府与企业类型的信 ...

  2. 直播 | 平安证券Kubernetes容器集群的DevOps实践

    分享时间:5月28日 20:30 分享主题:平安证券Kubernetes容器集群的DevOps实践 分享人介绍: 陈刚,平安证券运维研发工程师,负责经纪业务IT应用的持续交付平台的设计和开发. 分享摘 ...

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

    本文由百度技术团队"蔡锐"原创发表于"百度App技术"公众号,原题为<百度App网络深度优化系列<三>弱网优化>,感谢原作者的无私分享. ...

  4. 爱奇艺移动端网络优化实践分享:网络请求成功率优化篇

    本文原始内容由爱奇艺技术产品团队原创分享,本次有修订和改动. 1.引言 由于移动网络的复杂性特点,编写高质量.体验好的具备网络通信能力的移动端应用(尤其是即时通讯这类网络质量高度敏感的应用)有很大的挑 ...

  5. Kube-OVN:基于OVN的开源Kubernetes网络实践

    戳蓝字"CSDN云计算"关注我们哦! 技术头条:干货.简洁.多维全面.更多云计算精华知识尽在眼前,get要点.solve难题,统统不在话下! 今天,许多企业开始运行Kubernet ...

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

    本文由百度技术团队"蔡锐"原创发表于"百度App技术"公众号,原题为<百度App网络深度优化系列<一>DNS优化>,感谢原作者的无私分享 ...

  7. 改进量子计算机的三项创新

    来源:IEEE电气电子工程师本文约1500字,建议阅读5分钟来自六家公司和大学的研究人员提出了在低温下运行电路的新方法. Photo: Chalmers University of Technolog ...

  8. 设计模式之工厂方法模式、抽象工厂模式的概念和实现及使用“反射技术+读取配置文件”的方法对工厂模式进行改进(软件工程综合实践课程第三周个人作业)

    文章目录 一.实验目的 二.知识总结 1.工厂方法模式简介 2.抽象工厂模式简介 3.工厂模式小结 4.利用"反射技术+读取配置文件"的方法改进程序 三.实验内容 1. 工厂模式实 ...

  9. 大数据与AI的16个实践分享

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale活动 主办方:DataFun,指导单位:北京智源研究院 文章作者:Hoh Xi ...

最新文章

  1. 初识Tcl(七):Tcl 字符串
  2. 自整理IE6,IE7,IE8,Firefox兼容方案。。。
  3. ASP.net Xml: ASP.net操作Xml
  4. python电影推荐算法_电影推荐系统python实现
  5. Delphi-TScreen表示应用程序运行时屏幕的状态
  6. Java线程的不同状态
  7. Cloud一分钟|茅台4.5亿入股云上贵州大数据,后者已接管苹果中国iCloud; 阿里云进入印度市场,增长速度远超当地平均水平...
  8. mysql分析表_MySQL分析表有什么用
  9. Origin 在新打开的工作区添加列
  10. drools视频教程(drool实战实例+数据库+视频讲解)
  11. Unity3D开发之制作序列帧动画
  12. 七个习惯之四:双赢思维
  13. 自建服务器好还是外包,自建与外包对比:如何使你的IT回归内部
  14. LoadLibrary加载dll失败的问题
  15. MIUI9系统怎么卡刷开发版获取ROOT超级权限
  16. 51-20210316华为海思Hi3516DV300的linux系统编译2(SPI模式)
  17. 【数学基础】简单易懂的张量求导和计算图讲解
  18. [摘]用Java生成Word文档
  19. 爱普生Epson SureColor T5480 打印机驱动
  20. 基金申请-13:如何查论文的影响因子和SCI分区?

热门文章

  1. python左闭右开_漫话:为什么程序员喜欢使用0 ≤ i 10这种左闭右开的形式写for循环?...
  2. java后台接收参数_java 后台如何 接收 uploader UploadFileOptions 参数
  3. idea java sdk找不到指定文件路径_java-IntelliJ找不到任何声明
  4. mysqlinnodb教程_MySQL创建数据表时设定引擎MyISAM/InnoDB操作
  5. 20200114:(leetcode)两数相加
  6. 2014全国计算机等级考试四级数据库工程师考试大纲,4月全国计算机等级考试四级数据库工程师笔试试卷(1)...
  7. python线程数组_Python多线程
  8. mysql 树形结构_Mysql安装:基础入门知识
  9. VB 字符串MD5加密函数
  10. VB 打开文件夹,并选中指定的文件