Ocean by Spot的技术介绍:容器和Kubernetes的无服务器基础设施引擎

谈到现代容器编排,有多种控制平面解决方案可用于在容器化环境中管理应用程序。雷电竞官网进入用户可选择托管服务(即亚马逊EKS和ECS,谷歌GKE和Azure AKS)或使用Kubernetes运行自己的编配。然而,容器的动态特性引入了操作复杂性,可能会使云基础设施难以管理。

在扩展应用程序时,计算、网络和存储等基础设施服务需要既灵活又高效,如果管理不当,可能会导致更高的账单和较低的性能。智能数据平面解决方案可以帮助自动扩展容器工作负载优化成本容器基础结构的。然而,这种性能、高可用性和成本效率的结合通常涉及大量的配置和人工维护工作。

现场介绍海洋

海洋是一款旨在解决我们目前所面临的挑战的产品。它是Kubernetes和ECS的托管数据平面,旨在为在云中运行容器提供无服务器基础设施体验。



海洋设计为这样一种方式,即pod和工作负载可以利用云计算基础设施的底层功能,例如定价、生命周期、性能和可用性,而无需了解它。

Ocean集成了您选择的控制平面(EKS, GKE, AKS, ECS, Openshift, Docker Swarm或独立的K8s),并提供了一个完全管理的数据平面。它负责设置提供和扩展工作节点(K8s)或容器实例(ECS)所需的计算、网络和存储。

Ocean解决了集装箱基础设施管理的以下关键领域:适当大小和垃圾箱包装、定价优化和运行状况评分以及基础设施配置。

它是如何工作的?

Ocean通过控制器Pod(对于k8)或直接通过API(对于ECS)连接到集群的控制平面。这种连接允许Ocean查看集群的状态,它的资源和相应的响应。雷竞技rabet官网

Ocean基础设施配置通过观察Kubernetes API服务器上的事件来工作,为其提供其他方式无法实现的可见性和灵活性,确保可靠的性能、快速的可伸缩性,并将云基础设施成本降低90%

当启动实例时,Ocean支持生命周期的最佳混合。首选是在空闲容量上运行,这提供了最优的成本。但是,当有空闲的预订时,Ocean将首先使用它们,因为它们已经支付了费用。

此外,Ocean利用其预测能力来预测空闲容量中断,并能够主动地将危险实例替换为来自更安全市场的实例,或者在需要时返回到随需应变。这种主动的方法意味着节点能够优雅地耗尽,并且它们的工作负载迁移到它们的替换节点上,而不需要任何停机时间。这样,Ocean可以维持高可用性的生产工作负载。

所有这些都是自动进行的,只需要极少的设置。用户可以在几分钟内创建一个新的Ocean集群来加入他们现有的容器集群,并让Ocean开始工作。这创造了一种“无服务器容器”的体验,使工程师可以专注于开发新项目,而不是维护基础设施。然而,Ocean确实为那些想要它的人提供了细粒度控制和深度可见性,并提供了许多附加功能。在下一节中,我们将探讨这些问题。

在引擎盖下

在本节中,我们将介绍Ocean带来的其他特性和功能,以及它们如何使Ocean脱颖而出,成为容器基础设施管理领域的独特解决方案。

自动缩放-容器驱动的设计模式

Ocean构建在由Spot开发的“容器驱动的”自动伸缩软件(Patent PATS: 505789595)之上,该软件负责将集群上下伸缩以适应容器工作负载。Auto Scaling软件研究传入工作负载和pod大小的资源需求,并使用打包算法来扩大匹配大小和类型的实例。它考虑了额外的考虑因素,如网络、存储、cpu平台、价格或可用性要求,同时尊重k8s标签、注释和pdb (Pod中断预算)。

自动缩放器持续地模拟集群的变化,并在保持可用性的同时寻找可以缩小的实例。当它发现一个节点的工作负载可以安全地在其他节点上重新调度时,它的pods/任务将被耗尽,节点将被缩小。

这种最优扩展和有效扩展的组合可以以最小的成本获得高度利用的集群。

净空高度

Ocean 's Autoscaler还提供了包含空闲容量(vCPU和内存)缓冲区的选项,即净空。空空间确保集群具有快速扩展额外工作负载的能力,而无需等待新节点被分配并注册到集群。默认情况下,所维护的净空是集群总资源的5%,但是可以将其配置为不同的数量,这些数量将随着集群的增加或减少,或者手动设置为永久大小。雷竞技rabet官网Ocean为您的集群净空分配中的净空容量计算提供了丰富的可视性,可以按CPU、内存和GPU进行细分,可以在节点上细粒度地查看,也可以在VNG和集群级别上进行聚合。

Kubernetes

虚拟节点组

在同一个k8s/ECS集群上管理不同类型的工作负载需要管理多个逻辑实体,也称为节点组(或不同的AWS自动伸缩组、谷歌云平台nodepool等)。

Ocean的主要功能之一解决了这个问题,虚拟节点组(以前称为发布规范).从Ocean控制台的一个选项卡,用户可以为他们的工作负载配置标签和污点,并可以查看有关资源分配和空间的数据。vng允许用户在相同的集群上管理不同类型的工作负载,这些集群可以跨越多个az和子网。这是Ocean中的一个关键特性,它超越了描述实例属性、提供治理机制、伸缩属性以及它们负责集群中的工作节点组。vng在不同Kubernetes工作负载之间提供物理分离,允许团队根据需要在单个集群中划分基础设施。

Kubernetes

正确的大小

根据vCPU和内存估算pod/任务资源需求并不是一项简单的任务。即使开发团队成功地实现了对其应用程序资源消耗的准确估计,这些测量结果在生产环境中可能会有所不同。值得庆幸的是,Ocean 's Right Sizing功能将工作负载的CPU和内存请求与实际消耗进行比较。分析比较可以提供适当的建议,以改进部署/服务的资源配置。应用正确的资源定义可以帮助避免向节点过度提供额外的空间,防止未充分利用和更高的集群成本,或者未充分提供太少的资源,这可能导致集群中出现不同的错误,例如OOM事件。雷竞技rabet官网

可见性,成本分析和显示

Ocean允许用户在详细的仪表板的帮助下深入到集群资源:资源分配和利用视图,每个名称空间、节点、部署、雷竞技rabet官网pod/任务的成本分析,一直到容器级别。可以查看不同时间段的成本,并且可以基于标签和注释应用自定义过滤器。

蓝色/绿色节点升级-集群滚动

大规模维护弹性基础设施的挑战之一是部署影响整个集群启动配置的配置更新。Ocean通过智能集群滚动功能解决了这一挑战。通过应用程序感知的Ocean Cluster Roll,用户可以一键部署他们的集群。Ocean将执行集群节点的Blue-Green部署,考虑当前在集群中运行的pod或任务,并暂停任何与自动伸缩相关的活动,直到滚动完成。所得到的节点将根据其大小、类型和启动规格进行优化,以满足运行的工作负载需求,不需要进一步调整。

从海洋开始

Ocean提供了一个简单的迁移工具,它完全自动化了导入和设置过程,因此您可以在几分钟内将现有的Kubernetes集群导入到Ocean。一旦被触发,Ocean将优雅地、自动地分批排出现有的工作节点,并启动新实例(由Ocean管理)以适应集群的工作负载,同时考虑任何需求和放置限制。整个过程对用户来说是完全透明和可见的,具有可配置的选项,如批量大小、独立pod移除和节点的自动终止。

如果您有兴趣了解如何开始使用Ocean,请随时查看视频教程,前往海洋文档页,或尝试海洋与我们的免费试用下面。

下载我们的免费指南,“自动伸缩和其他6个Kubernetes自动化挑战”