首页 > 其他分享 >手把手带你使用Karpenter减少K8s集群资源浪费

手把手带你使用Karpenter减少K8s集群资源浪费

时间:2025-01-08 15:21:56浏览次数:1  
标签:-- 手把手 Spot 实例 Karpenter K8s 节点 karpenter

Kubernetes 集群的主要成本因素之一是数据平面上的计算层。将 Kubernetes 集群运行在 Amazon EC2 Spot 实例上是一种显著降低计算成本的有效方式。使用 Spot 实例可以比按需实例节省高达 90% 的费用。

Spot 实例非常适合无状态、容错性强且灵活的应用场景,例如大数据处理、容器化工作负载、CI/CD、Web 服务器、高性能计算(HPC)以及测试和开发工作负载。容器通常具有这些特性,因此与 Spot 实例高度契合。对于不适合 Spot 实例的工作负载,例如集群中的有状态应用,您仍然可以继续使用按需实例。

为了进一步优化数据平面的容量,当由于可用容量不足导致 Pod 无法调度时,您可以增加节点数量;当节点不再需要时,可以将其移除。要实现节点的自动调整,可以使用 Cluster Autoscaler (CA) 或 Karpenter。这两个工具都支持 Spot 实例,在本教程中,我将重点介绍 Karpenter。

我将引导您完成以下步骤:如何配置一个使用 Spot 实例和 Karpenter 的 EKS 集群。 此外,我还会展示如何配置工作负载,以通过使用 Spot 实例来动态提供所需的容量,从而直观感受到 Karpenter 的实际效果。

为什么选择 Karpenter

Karpenter 是一个为 Kubernetes 设计的节点调度开源项目。当新的 Pod 不断加入集群(无论是因为您手动增加了副本数量,还是通过 Horizontal Pod Autoscaling (HPA) 策略或 Kubernetes Event-driven Autoscaling (KEDA) 事件自动扩容),您的数据平面节点最终会达到容量上限,导致出现挂载(无法调度)的 Pod。

Karpenter 控制器会响应这一问题,通过评估调度约束(例如资源请求、节点选择器、亲和性、容忍度以及拓扑分布约束)整合这些挂载 Pod 的容量,然后调度符合这些 Pod 要求的节点。

使用 Karpenter 的主要优势之一在于,它能合理配置 Spot 实例,例如实例类型的多样化(包括多种实例家族、规格和代际等),这一功能通过 Karpenter 的 NodePool 实现。

如果您刚开始在 EKS 中使用 Spot 实例,或者在配置多个节点组的复杂性上遇到了困难,我建议您使用 Karpenter。

GitHub 地址:

https://github.com/kubernetes-sigs/karpenter

00/ 前期准备

在开始之前,您需要具备以下条件:

  • 拥有具有 IAM 权限的 AWS 账户,以创建 EKS 集群。

  • 如果您计划直接运行本教程中的命令,还需要一个 AWS Cloud9 环境。

  • 安装并配置 AWS CLI。

  • 安装 Kubernetes CLI (kubectl)。

  • 安装 Terraform CLI。

  • 安装 Helm(Kubernetes 的包管理工具)。

01/创建 Cloud9 环境

Tips:

标签:--,手把手,Spot,实例,Karpenter,K8s,节点,karpenter
From: https://www.cnblogs.com/cloudpilot-ai/p/18659767/eks-cost-with-karpenter

相关文章

  • K8S部署
    参考网站【Linux】Ubuntu部署K8S集群-图文并茂(超详细)-CSDN博客1、机器准备(Ubuntu)1.1、机器配置机器名称内存处理器(核心)硬盘网络适配器k8s-master2GB450GNATk8s-node12GB450GNATk8s-node22GB450GNAT1.2、系统配置相关调整1.2.1配置root用户登......
  • 循序渐进--从零开始建设k8s监控之alertmanager+发送飞书(三)
    前言书接上文,prometheus已经安装好了,监控数据是有了,我们需要对其进行告警,并且可以发送到对应的平台,比如飞书、钉钉等,这里选择用飞书来测试环境准备组件版本操作系统Ubuntu22.04.4LTSdocker24.0.7alertmanagerv0.27.0下载编排文件本文所有的编排文件,都......
  • 【Prometheus】【Alertmanager】手把手教你安装v0.28.0-rc.0版本
    本文用来演示下载安装Alertmanager的v0.28.0-rc.0版本(Linux64位),具体可以按照以下步骤进行:1.下载Alertmanager压缩包首先,你需要通过curl或wget命令来下载alertmanager的压缩包。使用curl命令下载:curl-LOhttps://github.com/prometheus/alertmanager/r......
  • 云上攻防-云原生&K8s安全&实战场景&攻击Pod&污点Taint&横向移动&容器逃逸
    知识点1、云原生-K8s安全-横向移动-污点Taint2、云原生-K8s安全-Kubernetes实战场景一、演示案例-云原生-K8s安全-横向移动-污点Taint如何判断实战中能否利用污点Taint?设置污点kubectltaintnodesnode1xtz=value1:NoSchedule去除污点kubectltaintnodesnode1xtz:NoS......
  • K8S 基础概念
    组件MasterAPIServerRestful风格的API,是整个集群入口,主要作用是把请求数据存储到etcd(CoreOS的键值对数据库)Scheduler调度器,主要管理节点与容器的关系ReplicationController(ControllerManager)集群管家,主要是管理容器的高可用性NodeKubelet主要作用是APIServe......
  • 云原生周刊:K8s 生态系统的五大趋势预测
    开源项目推荐BurritoBurrito是一款TACoS(TerraformAutomationandCollaborationSoftware)KubernetesOperator,旨在提供类似ArgoCD的体验,用于管理和自动化Terraform工作流。通过Burrito,用户可以在Kubernetes集群中轻松实现Terraform配置的声明式管理、自动化执行和......
  • 按部就班--从零开始建设k8s监控(二)
    前言书接上文,prometheus已经安装好了,并且能够对k8s的整体状态进行监控,但是我们还需要更多环境准备组件版本操作系统Ubuntu22.04.4LTSdocker24.0.7grafana11.2.2下载编排文件本文所有的编排文件,都在这里▶cd/tmp&&gitclonegit@github.com:wilso......
  • 【k8s基础】k8s 基本使用
    介绍及教程大全Kubernetes中文文档结构模型k8s是经典的一对多模型,有一个主要的管理节点master和许多的工作节点slaver。当然,k8s也可以配置多个管理节点,拥有两个以上的管理节点被称为高可用。k8s包括了许多的组件,每个组件都是单运行在一个docker容器中,然后通过自己规划的虚......
  • 零基础手把手教您在笔记本电脑上部署kubernetes 1.31.3 集群
    我是知识的实践者,关注我,手把手教您部署实践。贵在真实,主打就是一个按步骤做下去不会出错。一、Kubernetes概述一句话,他很强大,你必须要学会,否则就跟不上技术的潮流了。本人资源有限,在笔记本电脑上16G内存部署k8s集群,让大家都能接触到新技术NAMESTATUSROLES......
  • 云上攻防-云原生&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露
    知识点1、云原生-K8s安全-etcd未授权访问2、云原生-K8s安全-Dashboard未授权访问3、云原生-K8s安全-Configfile鉴权文件泄漏4、云原生-K8s安全-KubectlProxy不安全配置搭建环境使用3台Centos7(可参考录像或者看下面两个文章搭建)https://www.jianshu.com/p/25c01cae990......