管理Kubernetes成本的5个基本技巧

简介: 管理Kubernetes成本的5个基本技巧

目录

1.确定你的工作负载是否适合Kubernetes

2.了解工作负载的资源要求

3.选择大小合适的节点

4.正确设置你的资源请求和限制

5.应用程序中要具有可观察性


 

如果你在Kubernetes部署上的支出超出预期,那么你并不"孤单"。许多Kubernetes运营商的Kubernetes成本都比他们预期的要高。这是因为,与Kubernetes的部署一样,如何管理或降低成本也可能具有挑战性。

在本文中,我们提供了五个基本技巧,来帮助你实现低成本高效益的Kubernetes部署。


1.确定你的工作负载是否适合Kubernetes

Kubernetes可以为许多工作负载(但不一定是所有工作负载)提供显著的成本优势。如果你只是将所有东西都扔进Kubernetes并期望省钱,那么最终可能会造成沉重的技术债务负担,或者运营恶梦。你需要确定工作负载是否适合使用Kubernetes。

要考虑的关键问题是:

  • “此工作负载是否需要保存状态(如数据库)?”
  • “此工作负载是否支持弹性伸缩?”

如果将工作负载移至Kubernetes会导致低效率的运维,并可能需要耗费更多资源,那么在Kubernetes中运行它,可能并不具有成本效益。


2.了解工作负载的资源要求

在将工作负载转移到Kubernetes之前,你必须要决定在集群中使用的节点的大小和类型,因此必须评估所有工作负载中的资源需求(主要是CPU和内存)。对于有状态的工作负载,还要考虑需要多少存储空间。提前对工作负载的资源消耗及其可以处理的请求量有所了解,在需要新增实例之前将有助于估算总体成本。

幸运的是,大多数(即使不是全部)编程语言都可以帮助你了解资源消耗情况。结合性能分析工具与负载测试工具,你将很好地了解应用程序在压力下的性能和资源要求。


3.选择大小合适的节点

不幸的是,没有选择正确大小节点的灵丹妙药。更难的是Kubernetes允许你使用大小不一的节点以适合你的工作负载。这很大程度上取决于你必须部署的应用程序数量,以及资源要求。

还需要考虑在云提供商内部或外部设置某种类型的可观察性和警报。这可以让你知道:你当前花费多少。将事件绑定到来自Kube-Scheduler的日志中,将使你对需要部署的内容有所了解。

选择大小合适的节点是一项需要经常进行的练习。


4.正确设置你的资源请求和限制

根据对工作负载的资源消耗分析,花时间适当地设置资源请求和限制。这可以充分发挥容器编排工具带来的便利。有了资源需求后,Kubernetes可以更有效地对Pod进行调度,从而不会浪费资源。

一旦设置了限制并部署了工作负载,你就可以实施更高级的功能-如Pod 水平自动扩缩 (Horizontal Pod Autoscaler,HPA) 。HPA是Kubernetes中自动缩放的核心组件,可根据需要弹性伸缩Pod。HPA可以使用诸如CPU和内存之类的指标,也可以对自定义指标(如某个时间点)进行操作。


5.应用程序中要具有可观察性

你不仅需要监视Kubernetes,还要获得其中运行的应用程序的可观察性。关于应用程序,除了要了解每个Pod占用的CPU,内存,网络和存储量之外,你还应该具备应用程序方面的度量标准-每秒请求数量等等。

你可以将HPA配置为根据应用程序方面的自定义指标进行操作。有了应用程序的可观察性,这将使你的组织可以在以后就集群大小和扩缩容做出更明智的决策。提高可观察性,还要关注你的云提供商提供的功能,在Kubernetes集群节点中针对性地添加警报等。

无论你是在刚刚开始考虑部署Kubernetes,还是已经经历了一段时间,在整个团队中设置这些准则都可以帮助你优化Kubernetes的性能和成本。通过实施以上5个技巧,你可以节省大量成本,并能更准确地预测成本,避免那些意外的账单。虽然可能需要一些工作才能开始,但这里的努力可以取得实质性的回报。


译文链接:https://thenewstack.io/5-essential-tips-to-manage-kubernetes-costs/

 


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Kubernetes 监控 数据安全/隐私保护
K8s好看的管理页面Rancher管理K8S
K8s好看的管理页面Rancher管理K8S
256 4
|
存储 Kubernetes 监控
Kubecost | Kubernetes 开支监控和管理 🤑🤑🤑
Kubecost | Kubernetes 开支监控和管理 🤑🤑🤑
|
Prometheus Kubernetes 监控
Kubernetes 性能调优与成本控制
【8月更文第29天】随着 Kubernetes 在企业中的广泛应用,如何有效地管理和优化 Kubernetes 集群的性能和成本成为了一个重要的课题。本篇文章将介绍 Kubernetes 性能监控的基础知识,以及一些实用的成本优化技巧,包括资源配额的设置、Pod 密度的提高和集群规模的合理调整。
864 1
|
Kubernetes 开发工具 Docker
微服务实践k8s与dapr开发部署实验(2)状态管理
微服务实践k8s与dapr开发部署实验(2)状态管理
290 3
微服务实践k8s与dapr开发部署实验(2)状态管理
|
存储 Kubernetes API
使用Kubernetes管理容器化应用的深度解析
【5月更文挑战第20天】本文深度解析Kubernetes在管理容器化应用中的作用。Kubernetes是一个开源平台,用于自动化部署、扩展和管理容器,提供API对象描述应用资源并维持其期望状态。核心组件包括负责集群控制的Master节点(含API Server、Scheduler、Controller Manager和Etcd)和运行Pod的工作节点Node(含Kubelet、Kube-Proxy和容器运行时环境)。
|
存储 Kubernetes 容器
k8s卷管理-2
k8s卷管理-2
174 2
|
存储 Kubernetes 调度
k8s卷管理-1
k8s卷管理-1
118 2
|
Kubernetes 持续交付 Python
Kubernetes(通常简称为K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。
Kubernetes(通常简称为K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。
|
存储 弹性计算 运维
阿里云容器服务Kubernetes版(ACK)部署与管理体验评测
阿里云容器服务Kubernetes版(ACK)是一个功能全面的托管Kubernetes服务,它为企业提供了快速、灵活的云上应用管理能力。
474 2
|
Kubernetes 算法 API
K8S 集群认证管理
【6月更文挑战第22天】Kubernetes API Server通过REST API管理集群资源,关键在于客户端身份认证和授权。

推荐镜像

更多