使用AIOps优化Kubernetes集群的成本

a01.png

Kubernetes是Google开源的改变游戏规则的产品之一,它使许多组织的工做流程更加高效。有了Kubernetes,能够根据应用程序需求弹性管理应用程序的资源需求。它提供了根据工做负载需求为应用程序分配所需的CPU,磁盘和RAM的灵活性。算法

Kubernetes不只能够节省组织的时间和精力,并且还能够为组织节省大量资金。这是由于如今能够根据CPU使用率,RAM使用率和任何其余自定义指标来水平扩展部署。这致使在基于云的部署上节省了大量成本,不然会因为总体系统垂直扩展性质的基础架构要求而致使成本降低。docker

a02.jpeg

毫无疑问,Kubernetes经过简化基于docker的微服务的部署和管理复杂性而使组织受益。可是运行k8s集群的成本仍然是其每个月帐单的很大一部分。咱们真正须要的是一种能够下降k8成本而又不影响平台稳定性和性能的策略。架构

K8S费用激增的缘由:

咱们Opslyft将此视为挑战,并试图找到解决成本节约问题的解决方案。咱们就应该采起什么方法以及致使k8s成本激增的确切方法进行了头脑风暴。咱们得出了有关此问题的一些观察结果:框架

  • 没有启用集群级别的弹性伸缩器。因为担忧Pod处于pending 状态而不能被调度,只能预留多余的Node节点,致使Kubernetes集群处于闲置状态而形成的成本很高。
  • Kubernetes应用程序的基本执行单元是pod。在调整群集的节点数量以前,必须配置合适的Pod扩缩策略,这样才能使应用程序的Pod数量以具备成本效益的方式扩展,而不会出现Pod 资源利用率不高。
  • 在Pod内运行的容器对请求和使用的CPU和内存量都有限制。设置这些限制时必须当心,由于能够经过为其分配最佳计算资源来进一步优化在容器中运行的容器的成本。
  • 对于非生产部署,应该有一个调度机制以使其仅在工做时间内可用。这将经过在定义的时间扩展部署来节省成本,并使部署仅在用户须要使用时可用。
  • 大多数生产应用程序不在spot实例上运行的惟一缘由是因为实例回收而可能致使关键任务服务中断。可是,若是能够经过从新调度Pod来妥善处理spot实例回收,则能够节省大量成本。此处要求,服务须要可以优雅停机,而后一些组件可以感知spot机型的回收时间,在回收以前作好优雅停机处理。

在与咱们的一位客户合做时,咱们发布了有关Kubernetes集群成本状态的基准数字,而且鉴于上述观察结果是正确的,这浪费了多少成本。如下是咱们发布的报告中的一些统计信息:微服务

a03.jpg

咱们为客户提供的解决方案:工具

通过咱们的分析,咱们意识到,实施上述解决方案后,Kubernetes集群每一年可能节省的成本机会超过100,000美圆。解决挑战的方法是创建一个能够知足如下成功标准的系统:性能

  • 应该提供清晰的可见性并详细主动监控Kubernetes成本。
  • 应该根据资源消耗模式自动调整集群中的节点数。
  • 应该根据易于配置的指标自动调整应用程序所需的Pod数量
  • 应根据Pod的CPU和RAM使用率来调整容器资源配给
  • 若是出现spot回收事件,应适当地从新调度Pod,以防止服务/应用程序级别的任何中断

a04.jpeg

edisonContainer

edisonContainer是一个AIOps系统,致力于在不影响平台稳定性和正常运行时间的前提下,优化Kubernetes集群的成本。一旦在Kubernetes集群中启动并运行,它将执行如下功能:优化

  • 提供自定义仪表板和Excel报告,以加强对容器成本的可见性。
  • 与Grafana其余BI工具集成,以生成容器成本的仪表板。
  • 根据资源消耗模式自动调整集群中节点的数量。
  • 自动化,用于根据易于配置的指标来调整应用程序所需的Pod数量。
  • 针对可用资源和相关成本发布有关容器利用率的通知
  • 从集群中的每一个节点捕获spot终止事件,并适当地将Pod从新安排到其余节点。

如下是有关edisonContainer如何在Kubernetes集群上做为框架部署的高级示意图:spa

a06.png

结果

咱们在客户的基础架构之一中部署了edisonContainer。在部署edisonContainer以后,组织发现了如下显著的成本节省:3d

  • Kubernetes集群的平均每个月帐单从〜$ 30k降至〜$ 17k
  • 合理分配每一个Pod资源所节省的费用百分比-> 20%
  • 非工做时间缩减形成的节省百分比-> 15%
  • 使用竞价型实例节省的百分比-> 40%
  • 经过调整集群大小节省的百分比-> 20%

根据以上结果,咱们预计该公司到年末将在Kubernetes上节省超过100,000美圆。若是发生这种状况,咱们将假设咱们在公司成功实现容器优化的过程当中仅扮演了重要的角色。

下一步

下一步,咱们正在努力增长对其余容器编排系统的支持。 Mesos-Marathon在咱们的即时列表中。一样,不要忘记,咱们正在关注不断改进用于识别容器化环境中节省成本的其余途径的算法。

相关文章
相关标签/搜索