来自 网络 2022-06-08 21:10 的文章

cc攻击防御_高防攻击服务器_限时优惠

cc攻击防御_高防攻击服务器_限时优惠

在PalantirPalantirPalantirfollow上介绍Rubix:Kubernetes 2019年5月17日·5分钟阅读

2017年1月,Palantir启动了一个名为Rubix的项目,我们致力于重建Kubernetes周围的云架构。鉴于我们的大多数云实例都专用于计算,这项工作的核心目标之一是为Spark和其他分布式计算框架创建一个安全、可扩展、智能的调度和执行引擎。现在,我们已经成功地将Rubix推广到了我们的大多数车队,我们想与大家一起深入探讨我们所面临的一些挑战。我们将在一系列博客文章中开始讨论在Kubernetes上操作计算集群的特殊挑战。我们走吧!

背景

Palantir Foundry是一个数据管理平台,除其他外,ddos防御基础,它使用户能够通过编写和执行数据转换和流水线代码来集成数据,并通过编程和图形查询界面执行即席和探索性数据分析。数据分析和转换逻辑在分布式计算框架(如ApacheSpark)上执行。Foundry是一个多租户平台,允许具有不同权限的用户在共享数据和代码资产上进行协作;我们的许多客户不仅在内部使用Foundry,如何防御300g的ddos,还为他们的供应商和合作伙伴提供一个共同的协作环境,在这个环境中,所有用户都可以访问为其业务提供动力的数据。

随着时间的推移,Foundry的发展方式影响了我们的部署基础设施优先级。其中一个主要因素是从探索性数据分析转向运营决策:随着客户开始使用管道实时推动业务决策,可预测的性能变得越来越重要。具体而言,我们需要保证执行时间的差异比我们最初的云架构(使用固定资源在Apache Thread上执行Spark作业)所能支持的要小。

Rubix

随着Kubernetes成为现代PaaS系统的标准部署平台,2017年,我们决定将内部部署基础设施迁移到Kubernetes。因为这两个系统有着相似的设计,所以完全采用Kubernetes的决定似乎很简单——至少在应用程序和服务方面是如此。

然而,我们希望为应用程序和计算集群提供一个统一的部署基础。关键的开放性问题是Kubernetes支持的计算集群是否能够满足上述两个关键需求:(1)用户编写代码时的多租户安全性,以及(2)可预测的性能。特别是,我们评估了Kubernetes与当时明显的替代品Apache纱线和Mesos。让我们更详细地看看这两个挑战。

安全

我们的第一代云架构有两种执行用户提供的代码的方法:我们在Apache Thread上运行Spark应用程序,google防御ddos,我们在内部容器解决方案上执行其他类型的用户编写的代码。随着集装箱化技术的成熟,我们希望为Foundry中的所有用户代码利用其安全优势,而不仅仅是我们通过内部解决方案运行的代码。虽然当时Thread对容器的支持还不成熟,但Kubernetes从安全角度来看是引人注目的,原因如下:

它为在容器中运行各种工作负载提供了一组强大的功能。pod安全上下文等机制类似于我们之前在容器工作中实现的功能。Kubernetes中的安全概念控制着内置资源(例如pod)和由扩展管理的资源,比如我们为Spark on Kubernetes实现的扩展。这使我们能够在所有类型的第一方和用户编写的代码中设计一致的安全方法。

我们将在稍后的博客文章中深入探讨如何保护Kubernetes。

可预测的性能和成本

我们的客户愿意为专用一致性付费,但不愿意为静态分配的一致性付费。例如,如果一个作业今天运行1分钟,则用户希望同一个作业明天运行约1分钟。如果他们每天每小时运行一次,每次运行1分钟,用户希望支付24分钟的费用,而不是每天24小时的专用硬件。当然,如果他们可以选择几乎立即获得这些资源,那么这总是比一小时后获得这些资源更好。为了满足这些需求,我们需要从静态集群大小和可变作业资源转向更动态的集群大小和一致的作业资源。与纱线和Mesos一样,Kubernetes原则上允许我们通过集群自动缩放来独立调整性能和成本。

当然,魔鬼在于细节:从调整工作组子网的CIDR块大小到最小化实例启动时间,以便在短时间内处理大规模升级。最重要的是,我们扩展了Kubernetes调度器实现,以使计算性能可预测。本系列的下一篇博文将更详细地介绍我们在Kubernetes上的Spark工作以及调度Spark应用程序的挑战。

我们今天的处境

鉴于我们面临的挑战,我们本可以选择继续投资纱线,并重新设计我们的云架构,以实现动态缩放和短暂的纱线集群。但我们越来越感到自己在打一场艰苦的战斗,每一步都需要一个越来越个性化的解决方案。纱线也不适合Spark以外的大多数用户代码工作。