Netflix针对数百万容器的高效网络配置

Netflix针对数百万容器的高效网络配置

关键字: [Amazon Web Services re:Invent 2024, 亚马逊云科技, Titus, Container Networking, Network Configuration, Ip Address Assignment, Traffic Shaping, Network Isolation]

导读

Netflix运营着一个高效的云计算基础设施,支持广泛的应用程序,这些应用对我们的SVOD(订阅视频点播)、直播流媒体和游戏服务至关重要。Titus,Netflix的容器管理平台,在亚马逊云科技云环境中管理关键业务容器方面发挥着重要作用。为每个容器进行适当的网络配置对于确保服务之间的无缝通信以及与外部世界的连接至关重要。本次粉笔讨论会将探讨IPMan,这是一个由Netflix专门设计和开发的系统,用于解决每日运行的数百万个容器的网络设置需求。

演讲精华

以下是小编为您整理的本次演讲的精华。

在亚马逊云科技 re:Invent 2024大会上,Joey Berba作为支持Netflix的亚马逊云科技解决方案架构师登台介绍了本次会议的主题:如何在Netflix内部名为Titus的平台上扩展容器网络,该平台受到Kubernetes API规范的深刻影响。Joey强调了容器的优势,如可移植性、轻量级特性和高效的资源利用率,但也承认了大规模容器带来的网络挑战。然后,他欢迎Netflix的高级软件工程师Hachali来介绍他们如何为生产环境中的数百万个容器高效配置容器网络。

Hachali首先解释了Netflix采用容器的原因。首先,容器提供了可移植性和一致性,确保应用程序在开发、测试和生产环境中运行一致,消除了软件工程师长期面临的“在我的机器上运行正常”的问题。其次,与虚拟机相比,容器可以更快部署,因为它们不需要完全初始化操作系统,这对于持续集成和持续部署(CI/CD)管道特别有用。最后,也许最关键的是,容器有助于成本效率和资源优化,这是在亚马逊云科技云上运营的企业的一个至关重要的考虑因素。

为了说明容器的节省成本潜力,Hachali提供了一个假设场景。假设一位开发人员Alice想要在亚马逊云科技上部署她的应用程序。传统上,她会配置一个EC2实例,可能会选择一个通用实例类型,如m5.xlarge,具有4个CPU,以确保有足够的资源。然而,如果Alice的应用程序不是CPU密集型的,并且在运行时只使用一个CPU,剩余的三个CPU将被低估利用,导致资源分配效率低下和成本更高。

Hachali将这种方法与Titus等容器管理系统进行了对比,她将其比作“魔术盒子”。在这种情况下,Titus将分析现有的资源利用率,并在同一个m5.xlarge实例上部署Alice的应用程序,从而将CPU利用率从25%提高到50%,降低了总体成本。这个例子突出了容器优化资源使用和降低运营成本的潜力。

在阐明采用容器的理由后,Hachali概述了Netflix容器网络的关键要求。首先,开发人员使用容器的体验应该与使用EC2虚拟机相似,每个容器都有一个专用的网络IP地址,并使用相同的安全组机制来控制流量。其次,容器需要隔离,既在数据平面级别通过Linux网络命名空间实现,也在账户级别实现,因为某些团队需要将其应用程序运行在与主生产账户分离的账户中。最后,即使对于短暂的容器和突发性工作负载,也需要低延迟的网络设置,以充分利用容器化带来的敏捷性。

Hachali接着介绍了设计过程,从为每个容器配置网络接口(ENI)和IP地址的目标开始。最初将辅助ENI附加到EC2实例的方法存在着账户隔离和每种实例类型的最大ENI数量的限制。例如,在Titus使用的m5.metal实例类型上,只能附加14个辅助ENI,从而限制了可以使用唯一安全组设置启动的容器数量。

第二种方法称为ENI trunking,通过使用一个trunk ENI和分支ENI(可以位于不同的VPC和账户中)解决了这些问题,满足了账户隔离的要求。该方法采用了Linux IPVlan技术,根据VLAN信息和IP地址通过trunk ENI路由流量。然而,这引入了潜在的噪音邻居问题,即一个容器的过度网络使用可能会影响共享trunk ENI的其他容器的性能。为了解决这个问题,Netflix实现了Linux TC(Traffic Control)和分层令牌桶(HTTB)算法进行流量整形,确保公平的带宽分配,防止由于噪音邻居而导致性能下降。

为了减少短暂容器和突发性工作负载的网络设置延迟(这是一个关键要求),Hachali解释了他们如何采用请求批处理等技术来减少IP地址分配的亚马逊云科技 API调用。与为每个容器单独发出API调用不同,请求被批量处理,大大减少了API调用率。

此外,Netflix和亚马逊云科技共同发明了一个名为前缀委派(prefix delegation)的功能,允许他们从亚马逊云科技请求一个/80 IPv6前缀,而不是单个IP地址。有了这个前缀,Netflix就可以为容器分配IPv6地址而无需发出额外的API调用,大大减少了延迟。Hachali强调Netflix致力于迁移到IPv6,因为与IPv4相比,IPv6具有巨大的成本节约和可扩展性优势。

然而,使IPv6专用容器能够与IPv4专用端点通信仍然是一个挑战。Hachali讨论了亚马逊云科技的NAT64和DNS64解决方案的局限性,包括无法直接使用IP地址进行通信、每个数据包翻译导致的性能开销,以及在Netflix的规模下巨大的成本。为了克服这些限制,Netflix开发了一种内部解决方案,称为TITAS SECCOMP代理,它可以透明地使IPv6专用容器与IPv4专用端点通信,而无需NAT64和DNS64的缺陷。

Hachali接着深入介绍了Netflix高效容器网络系统IPMAN(IP Management)的架构。该系统包括Titus代理集群(由充当容器主机的EC2实例组成)和在每个主机上运行的IPMAN代理,用于处理网络设置。IPMAN服务集群由一个领导者服务和两个用于故障转移的跟随者组成,负责协调IP地址分配,并与Amazon DynamoDB进行状态存储,以及与Amazon EC2服务进行ENI和IP地址分配(如有必要)。

为了证明他们解决方案的有效性,Hachali分享了生产环境的指标。在某个时候,Netflix每秒运行800个容器,每天数百万个容器。对于IPv6专用网络设置,他们实现了令人印象深刻的100毫秒P99延迟,主要归功于前缀委派的优势。包括IPv4流量在内的整体网络设置P99延迟为4秒,这归因于请求批处理和剩余的IPv4地址分配API调用。

Hachali承认,虽然他们目前的解决方案是高效的,但仍有改进的空间。首先,Netflix的目标是完成IPv6迁移,使所有应用程序都能从前缀委派中获益,进一步减少整体网络设置延迟。其次,他们正在探索更高性能的流量整形机制,以解决在高数据包每秒率下遇到的HQS实现的性能问题。最后,Netflix正在研究在Linux内核中使用eBPF(Extended Berkeley Packet Filter),以减少他们当前数据平面实现中所使用的IPVlan技术引入的额外TCP堆栈遍历开销。

总之,Hachali的演讲全面概述了Netflix在前所未有的规模上高效配置容器网络所面临的挑战、要求和创新解决方案。从利用容器编排进行资源优化,到与亚马逊云科技共同发明前缀委派等功能,Netflix展示了他们在持续改进和合作方面的决心。本次会议突出了容器化、网络和云基础设施之间的复杂交互,展示了Netflix如何在这一领域推进了可能性的边界。

下面是一些演讲现场的精彩瞬间:

演讲者强调了容器的优势,包括可移植性、轻量级特性、高效利用资源以及快速启动和关闭实例的能力。

d5377763ce8cf590a2767b8eedeb000e.png

开发人员Alice面临着在亚马逊云科技上部署软件时选择合适的EC2实例类型和大小的挑战,需要权衡资源需求和成本考虑。

d944a93484d418f6883eb4c87fb39d4d.png

演讲者强调了Netflix致力于迁移到IPv6,并强调了将在演讲稍后讨论的好处。

4d0311f8ae0b675cdd5a379c1039f83c.png

解释了如何通过附加辅助弹性网络接口(ENI)并将其IP地址分配给容器,为运行在EC2实例上的容器提供网络连接。

a5e60ff8d26528d7a298d2cca875d6c0.png

介绍了ENI trunking解决方案,允许容器从不同的VPC和账户分配ENI和IP,使用IPVlan技术实现高效的流量路由。

6adf8774d9883c53c12ffd7c4e9e81e5.png

详细解释了在亚马逊云科技中IPv6地址分配的工作原理,涉及IPMAN代理、IPMAN服务和EC2服务,举例说明如何分配一个带有/80 IPv6前缀的ENI,并将第一个可用IP地址分配给任务。

033e5d0cd728c2fa4cbeb4700f1d2562.png

总结

在这个引人入胜的叙述中,Netflix的高级软件工程师Hachali揭示了在Netflix的生产环境中为数百万个容器高效配置容器网络所面临的复杂挑战和巧妙解决方案。她以技术见解和生动的叙事方式带领我们探索Netflix的容器编排系统Titus的演进历程。

Hachali首先强调采用容器的令人信服的理由,如可移植性、一致性、更快的部署和成本效率。然后,她深入探讨了容器网络的复杂性,仔细分析了要求:保持与EC2虚拟机类似的开发人员体验、确保数据平面和账户级别的隔离,以及在突发工作负载期间实现网络设置的低延迟。

通过一系列富有洞察力的示例和类比,Hachali引导我们探索各种设计选择,每一种都有其权衡取舍。从ENI汇聚和前缀委派到请求批处理和共同发明的SECCOMP代理,她揭示了Netflix为克服前所未有规模的容器网络挑战而编织的复杂解决方案。

随着叙述的展开,Hachali分享了令人着迷的生产指标,展示了他们的IPMAN系统取得的卓越成就。以100毫秒的P99延迟进行IPv6专用网络设置,整体P99延迟为4秒,Netflix为高效的容器网络铺平了道路,每天处理数百万个容器。

然而,这一旅程仍在继续,Hachali揭示了对更高效率的不懈追求。从迁移到IPv6到探索更高性能的流量整形机制,并利用eBPF提高网络性能,Netflix对创新的不懈追求闪耀着光芒,让我们受到启发,期待容器网络大师这一史诗般篇章的下一个阶段。

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者。提供200多类广泛而深入的云服务,服务全球245个国家和地区的数百万客户。做为全球生成式AI前行者,亚马逊云科技正在携手广泛的客户和合作伙伴,缔造可见的商业价值 – 汇集全球40余款大模型,亚马逊云科技为10万家全球企业提供AI及机器学习服务,守护3/4中国企业出海。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值