如何通过k8s来降低运营成本?

通过k8s来降低运营成本从大方面上分为两类:资源配置和自动运维。下面具体来聊聊。

资源配置方面

资源配置主要是通过资源使用率来减少成本。

超卖

多数服务都有资源浪费的情况,特别是业务系统多数为IO密集型。CPU利用率很低,这时候可以进行超卖来提高资源使用率。超卖是指比如分配给了4个核,但是因为资源共享,在自身使用不高的情况下,有可能将4个核共享。比如超卖率为2。就是说极端情况下其实自己只得到2个核。但是这会配合监控使用。如果这个服务突然CPU使用率上升,最高还是可以用到4个核的。但是如果这个容器所在的物理机都分配满了,而且整体CPU使用率都很高,可能会获得不了足够的核数从而造成稳定性方面的影响。

混部

混部是指将一些资源使用不同的服务部署到一台物理机上,以提高整体的利用率。比如IO密集型业务、CPU密集型业务以及ES等高内存消耗的服务混部,让CPU、内存和网络资源都能够很好的利用。

按需调度

可以设置资源基线,如果用户没有特殊需求,则按照基线标准分配资源。如果用户有智能网卡、NUMA绑核等特殊需求,再将这些稀缺资源进行分配,以提高整体的资源利用率。另外还可以使用云提供商的存储服务,如AWS的EBS或GCP的Persistent Disks,以减少存储硬件的购买成本。

自动运维方面

自动运维这可以减少人工和机器两方面的成本。

自动扩缩容

利用Horizontal Pod Autoscaler(HPA)等工具根据负载自动增减Pod数量。

成本分析

使用Cost Anomaly Detection等工具来识别资源消耗高的服务进行优化,检测服务问题,提高资源使用率。

自动化工具

可以通过自动化工具来实现节点碎片的再平衡。随着时间的推移,任何活动的 Kubernetes 集群都会经历一系列重复的部署和周期性的扩展,这就意味着会不断添加和删除 Pod 和节点。这个周期通常会在集群中产生一些效率低下的情况。由于 Kubernetes 调度程序无法预测未来的 Pod 大小和节点添加,随着时间的推移,许多不一致性会出现在 Pod 的调度中。最终,Pod 会被调度到各个节点上,导致任何新的 Pod 无法在任何单个节点上满足所需的资源,使 Pod 无法调度,即使在节点上可能有更多的容量,但仍然需要扩展。这样就产生一个假的资源紧张现象,可以通过整合这些可用资源片段来避免。

相关推荐
旦沐已成舟22 分钟前
K8S搭建轻量级日志收集系统(EFK)
elk·kubernetes
chen_note2 小时前
Dockerfile及其部署镜像步骤
docker·容器·镜像·dockerfile
thinktik2 小时前
AWS EKS安装S3 CSI插件[AWS 海外区]
后端·kubernetes·aws
Jy_06223 小时前
K8s中,deployment 是如何从 yaml 文件最终部署成功 pod 的
云原生·容器·kubernetes
mobº3 小时前
K8s 集群环境搭建 - yaml 版本(一)
云原生·容器·kubernetes
终端行者3 小时前
K8s中部署Minio集群 如何部署minio集群
云原生·容器·kubernetes·1024程序员节
荣光波比4 小时前
Prometheus(二)—— 在K8s集群中部署Prometheus+Grafana+AlertManager实现全方位监控
kubernetes·grafana·prometheus
程序猿阿伟7 小时前
《3D手游云原生开发:关键难题突破日志》
3d·云原生
AKAMAI7 小时前
Akamai与Bitmovin:革新直播与点播视频流服务
人工智能·云原生·云计算
StarRocks_labs7 小时前
Kubernetes 场景下的 StarRocks 灾备体系:Cluster Snapshot 实践解析
starrocks·kubernetes·数据备份·存算一体架构·快照恢复机制