admin管理员组

文章数量:1659747

4月10日下午,爱奇艺技术产品团队举办了“i技术会”线下技术沙龙,本次技术会的主题是“云原生落地探索与实践”,邀请快手、百度和字节跳动的技术专家,与爱奇艺技术产品团队共同分享与探讨云原生落地的实践经验。

其中,来自爱奇艺的技术专家赵慰为大家带来了爱奇艺容器实践的分享,讲述了爱奇艺的容器应用场景和在容器网络、容器运行时方面的实践经验。

PS:关注公众号,在后台回复关键词“云原生”,就可以获得本次技术会嘉宾分享PPT和录播视频。

以下为“爱奇艺容器实践”干货分享,根据【i技术会】现场演讲整理而成。

爱奇艺容器实践/分享嘉宾:爱奇艺技术专家赵慰

本场分享的主要内容包括爱奇艺近年来在容器方面的实践经验和遇到过的问题,以及我们在选型和探索过程中的一些心路历程。

     1、爱奇艺容器应用场景

爱奇艺内部超过一半的应用实例正在以容器形式运行,这些容器基本都运行在物理机集群上面。最初爱奇艺采用Mesos框架、基于Mesos的开源服务调度框架Marathon和自研批处理框架Sisyphus,并基于Marathon研发了QAE(iQIYI App Engine)。当时,大量公司以Mesos/Marathon为基础做着类似的事情。前不久,有消息表明Mesos即将从Apache光荣退休,而Twitter贡献的著名Mesos调度框架Aurora项目也早在去年二月份就已进入Apache退役名单。对于Mesos的告别,我们感到非常遗憾,同时也加快了向Kubernetes转型的脚步。爱奇艺在Kubernetes方面起步较晚,之后除提供原生K8S服务之外,我们还会进一步在K8S基础上提供不同抽象级别的应用引擎,包括Serverless、FaaS、workflow等,希望以后能够有机会和大家分享我们后续的工作。

     2、容器网络实践

爱奇艺容器网络应用的发展如图所示:

我们在Mesos框架用的最多的是Docker原生的local Bridge + NAT,于2014年投入使用,现在还在大量运行;中途尝试过Calico,然而当时Docker和K8S等组织有关容器网络标准的争论导致我们无法全力投入某种技术,加之管理难度的限制,最终导致Calico方案并没有在爱奇艺大规模应用;后来发展K8S时,由于之前NAT策略在应用上不太友好,所以我们定了一个基础方向,将容器网络跟内网打通,并选了一些具体实现方法,比如VXLAN、Calico/CNI。后来Cilium出现,并在一些公司得到应用,大家比较感兴趣;既然我们起步已经晚了,倒不如直接采用一些激进的新方案奋起直追。

可能有些同学对CNM(Container Network Model,容器网络模型)和CNI(Container Network Interface,容器网络接口)的容器标准之争不太了解,下面做一个简单的解释:

Docker将自己的网络方面剥离出一个独立项目libnetwork并提出了CNM,定义了网络、接入点等概念以及创建网络、加入网络等操作,允许第三方插件按照标准与Docker对接;CoreOS则提出了更为简单的CNI,只定义了往网络里面加减容器的接口标准。当时对于两款接口的使用,两家公司各执一词。对于K8S方来说,他们觉得CNM的接口和Docker的结合过于紧密,所定的用户操作标准也过于复杂,CNI相比CNM来说更加安全、简单、松耦合;Docker方对此的官方回复是,K8S等社区的意见和建议不符合Docker的整体设计。最终K8S选择了CNI作为网络方案。现在CNI在行业应用中占据主导地位,但对于插件来说,无论对哪个接口,所做的工作内容都是差不多的,例如CNM要求网络配置要通过Docker的libKV存储,而CNI没有这方面的要求,但对于网络插件来说,它的存储总是要有的,只不

本文标签: 干货容器沙龙内附爱奇艺