欢迎访问网易云社区,了解更多网易技术产品运营经验。

10 月 15 日,聚焦 Kubernetes 中国行业应用与技术落地的首届中国 Kubernetes 用户大会(KEUC)在杭州成功举办。本次大会吸引了来自全球各地的技术精英齐聚一堂,共同探讨、分享 Kubernetes 最前沿技术和成果,对于 Kubernetes从理论到落地推广,并走向国际化有着极为深远的意义。

大会的Keynote环节中,网易云基础设施部技术总监张晓龙带来了题为“容器及其编排技术在网易公有云的应用”的演讲。

网易从2012年就开始使用LXC工具部署内部业务,2014年研究容器并基于Docker部署面向网易内部产品的消息推送服务,2015年开始研究容器编排并基于kubernetes实现网易自身的容器编排服务,2016年将公有云基础设施服务(云主机、云网络、云硬盘)与已有容器及其编排服务深度整合并优化,并发布网易云容器服务(蜂巢容器云),目前在研发面向高性能场景的公有云裸金属容器。

网易云容器服务的目标是面向海量互联网用户提供按需使用、高性能、安全可靠的公有容器云,为了完成这个目标,主要遇到了四大挑战:

  • 多租户隔离:实现容器系统内核、网络的隔离,实现容器的安全可靠;

  • 资源动态管理:容器的计算、网络、存储资源按需动态分配与回收;

  • 高可扩展:实现大规模容器下的高效编排管理;

  • 高性能:提供高网络吞吐量、高IOPS的容器。

 
网易云深度整合IaaS与容器及其编排服务

网易云将基础设施与容器编排服务做了深度整合与优化,实现了容器网络/内核的租户隔离;基础设施的性能优化可直接提升容器性能;实现容器运行资源按需动态管理;将资源管理和容器编排分层,降低容器集群管理的复杂性。

此外,网易云通过对社区原生集群编排的一系列优化,实现了Kubernetes单集群容器管理能力相比官方1.6版本6倍的性能提升,同时实现了多个Kubernetes集群并行扩展的能力,使得我们可以面向海量互联网业务提供大规模容器集群的管理。

最后,网易云结合计算、存储、网络层面的基础设施实现了容器的高性能:

  • 计算层面:容器直接运行于裸机,消除KVM虚拟化/IO路径的开销,计算性能提升15%;

  • 网络层面:基于DPDK/SR-IOV实现高速网络包转发,网络包处理能力接近150W;

  • 存储层面:容器使用自研高性能分布式块存储后端,磁盘写性能3W+ IOPS/300Mbps。

最后,张晓龙透露未来网易云会在以下三个方面继续深耕:研发GPU/FPGA 高性能容器,跟进开源社区最新版本并适配,加大参与社区力度并反馈社区。

在Kubernetes技术论坛中,网易云首席解决方案架构师刘超分享了“网易云如何基于大规模Kubernetes集群支持高并发应用”。

网易云首席解决方案架构师 刘超

首先,刘超以网易考拉海购为例,介绍了大规模云原生应用的支撑痛点。考拉在拆分为微服务后,各个服务间的关联关系是非常复杂的。为了支撑这个复杂的应用,会对Kubernetes集群产生以下需求:首先,在入口需要有高性能负载均衡器承载外部大规模的流量,流量进来后需要高性能私有网络来支撑组件间的相互访问;其次,要保证容器网络和虚拟机网络互通,使得容器可以访问PaaS平台的服务:此外,还包括高可用、服务发现、统一的配置中心等需求。

刘超分别从架构、网络、负载均衡、服务发现等方面介绍了网易云如何解决大规模云原生应用的痛点,从而支撑考拉业务的。

网易云容器服务平台架构

上图是网易云容器服务平台的架构,网易云的容器服务部署在底层的IaaS平台之上,需要动态依赖底层的计算资源来创建云网络、云硬盘、Node节点等资源。通过网易云自研Netease Controller组件,可以监听事件事先准备好底层的硬件资源;

云网络方面,网易云自研的CNI插件部署在每个虚拟机节点上,每当发现有Pod起来的时候,就会调用CNI插件,从IaaS平台上虚拟出一张网卡打到虚拟机里。

容器服务的网络模型

在IaaS平台或虚拟机中部署容器,通常会遇到二次虚拟的问题,即物理机到虚拟机的一次虚拟和虚拟机到容器的一次虚拟,对吞吐量会产生很大影响,如左图所示。为了解决这个问题,网易云将虚拟机的网卡打到容器中(右图),容器看到的网络和虚拟机看到的网络是同一个二层网络,一方面的好处是只有一层overlay,另一方面虚拟机和容器之间可以相互访问,使得虚拟机和容器混合部署的应用可以无感知地迁移,并且容器也可以访问虚拟机上的PaaS服务。

负载均衡方面,网易云也开发了一个Load Blancer Controller,要起一个负载均衡的时候,会调用Load Balancer Manager去创建一个虚拟的Load Balancer。我们的负载均衡包含2层,一层是物理的负载均衡,所有租户共享;另外一层是虚拟机中的HAProxy,负载均衡和虚拟机或容器的连接通过OVS的二层网络就可以搞定。

Kubernetes默认使用用kube-proxy实现服务发现,考拉和云音乐等大型应用更倾向于使用其做外部的服务发现,可以简化配置;而内部的服务发现通常沿用容器化前的服务发现方案Dubbok,一方面因为Dubbok的功能更强大,另一方面避免底层平台的绑定。

网易云为您提供容器服务,欢迎点击免费试用。

相关文章:
【推荐】 知物由学|未来安全隐患:AI的软肋——故意欺骗神经网络

最新文章

  1. Javascript定义类(class)的三种方法
  2. [Openwrt 项目开发笔记]:Openwrt平台搭建(一)
  3. LeakCanary中英文文档+使用例子
  4. 根据 MySQL 状态优化 ---- 2. 连接数
  5. Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)
  6. [转载] 多年积累的 mysql 运维经验
  7. 非常有用!eclipse与myeclipse恢复已删除的文件和代码
  8. easyui使用时出现这个Uncaught TypeError: Cannot read property 'combo' of undefined
  9. windows API中的各种字符串的本质
  10. My97 DatePicker 选择时间后弹出选择的时间
  11. python 学习资料
  12. System Error. Code:1722. RPC服务器不可用解决办法
  13. JVM虚拟机基本概念
  14. Redis纠错
  15. python-深浅copy-18
  16. javascript 什么类型没有toString()?
  17. 再读c++primer plus 002
  18. Redis学习系列五Set(集合)
  19. Visual Studio 2010详细安装过程
  20. 安装oracle10g“程序异常终止。发生内部错误。请将以下文件提供给oracle技术支持部门

热门文章

  1. Spark python集成
  2. tomcat8.5配置优化
  3. 用AutoHotkey一键打开、激活、或隐藏Chrome(或其他软件)
  4. java 内存举例
  5. 使用selenium grid与BrowserMobProxyServer联合使用
  6. 【转】Activity生命周期详解
  7. openstack kilo 命令行
  8. Linux利用i节点删除乱码文件
  9. ios数据持久化--CoreData框架的介绍和使用
  10. Servlet学习笔记04——什么是重定向,servlet生命周期?