形势所迫
随着云原生技术的不断发展,越来越多的企业选择将应用程序部署在云上或自建的 Kubernetes 集群上。然而,许多研究表明,大多数用户的集群资源利用率并不高,存在严重的浪费现象。为了解决这个问题,本次集训营的实验通过实例快速搭建一个 Kubernetes+Crane 环境,并介绍如何利用 Crane 优化你的集群和应用程序。通过本次实验,可学习到如何最大化地利用你的集群资源,提高应用程序的性能和可靠性,从而为你的企业带来更高的价值和竞争力。无论是初学者还是有经验的 Kubernetes 用户,本次实验中学习的技术知识和实践经验,能帮助我们更好地应对云原生时代的挑战,只要应用得当,它就像英雄手中的宝剑,无往不利,真正做到了当下流行的“控本增效”四字策略。
酝酿已久
Kubernetes是用于自动部署、扩展和管理“容器化应用程序”的开源系统。该系统由Google设计并捐赠给Cloud Native Computing Foundation来使用。 它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。 它支持一系列容器工具,包括Docker等。
FinOps Crane
首先逐个拆解,FinOps,Financial Operations,即是一种新兴的管理方法,旨在帮助IT企业更好地管理云计算成本。它强调将云计算成本视为业务成本,而不是IT成本,并通过实时监控和分析云计算成本,帮助企业更好地了解其云计算成本结构和趋势,并制定相应的成本优化策略。FinOps的实践需要财务、运营和技术团队之间的密切合作,通过协同工作,企业可以更好地管理云计算成本,提高业务效率和竞争力。
而Crane 是一个基于 FinOps 的云资源分析与成本优化平台。它的愿景是在保证客户应用运行质量的前提下实现极致的降本。它本身也是一种云成本管理工具。与 Kubernetes /其他工具集成之后就是一种容器编排的开源工具。
宝剑出世
Crane整体功能:
Crane与K8s相辅相成,它们的关系就好像一文一武的组合,能发挥出1+1>2的效果。
k8s虽然功能强大,但是其缺点也非常的明显,那就是部署和维护成本高;资源消耗高,影响性能;
过于复杂导致各种各样的错误和故障。而Crane的加入,就像是围棋界的神之一手,弥补了其缺点,并简化了管理的工作,使得技术或业务人员能更好的上手,将更多的精力从维护中解放出来,去做更有意义的事。
成本可视化和优化评估
可视化的仪表板,我们可以直观地了解多个云平台上的成本和使用情况。通过多维度的成本洞察,优化评估。通过 Cloud Provider 支持多云计费。
推荐框架
提供了一个可扩展的推荐框架以支持多种云资源的分析,内置了多种推荐器:资源推荐,副本推荐,HPA 推荐,闲置资源推荐。
多云管理
Crane 可以管理多个云平台的账户和资源,再也不用因为在多个云厂商都有部署而徒增不必要烦恼。它为我们提供一站式的云成本管理解决方案。一个平台实现所有的云服务的管理,主打的就是一个人性化。
基于预测的水平弹性器
EffectiveHorizontalPodAutoscaler 支持了预测驱动的弹性。它基于社区 HPA 做底层的弹性控制,支持更丰富的弹性触发策略(预测,观测,周期),让弹性更加高效,并保障了服务的质量。
负载感知的调度器
动态调度器根据实际的节点利用率构建了一个简单但高效的模型,并过滤掉那些负载高的节点来平衡集群。
拓扑感知的调度器
Crane Scheduler与Crane Agent配合工作,支持更为精细化的资源拓扑感知调度和多种绑核策略,可解决复杂场景下“吵闹的邻居问题",使得资源得到更合理高效的利用。
基于 QOS 的混部
Crane 可以自动识别并优化云环境中的资源和服务,以降低成本并提高效率。它可以根据实际使用情况自动调整计算资源的规模,如果有的服务的资源占比需求较大,它就会自动去调整资源增加,从而确保我们服务器达到最佳性能和最低成本的一个奇妙的平衡和奇点,实现最优的效率。
极致剑身,浑然一体
整体架构如下:
Craned
Craned 是 Crane 的最核心组件,它管理了 CRDs 的生命周期以及API。Craned 通过 Deployment 方式部署且由两个容器组成:
- Craned: 运行了 Operators 用来管理 CRDs,向 Dashboard 提供了 WebApi,Predictors 提供了 TimeSeries API
- Dashboard: 基于 TDesign’s Starter 脚手架研发的前端项目,提供了易于上手的产品功能
Fadvisor
Fadvisor 提供一组 Exporter 计算集群云资源的计费和账单数据并存储到你的监控系统,比如 Prometheus。Fadvisor 通过 Cloud Provider 支持了多云计费的 API。
Metric Adapter
Metric Adapter 实现了一个 Custom Metric Apiserver. Metric Adapter 读取 CRDs 信息并提供基于 Custom/External Metric API 的 HPA Metric 的数据。
Crane Agent
Crane Agent 通过 DaemonSet 部署在集群的节点上。
初露锋芒
实验步骤
实验准备步骤 (课前准备)
安装 kubectl
请参考官方文档依据你的本地环境系统参考对应的文档安装
kubectl参考文档