推荐使用:estafette-gke-preemptible-杀手

推荐使用:estafette-gke-preemptible-杀手

项目简介

estafette-gke-preemptible-killer 是一个轻量级的 Kubernetes 应用,它旨在解决 Google Kubernetes Engine (GKE) 中预置实例(preemptible VM)的生命周期管理问题。这款工具在预置节点池中循环检查并提前终止节点,以避免由于预置实例的24小时寿命限制而可能引发的大规模中断。

项目技术分析

estafette-gke-preemptible-killer 工作原理如下:

  • 在设定的时间间隔内,应用会获取所有预置实例列表,并判断是否应当删除。
  • 如果节点上没有时间到结束的注解,则随机分配一个在12至24小时范围内的时间值,并将其存储为节点注解。
  • 当这个时间点到达时,节点被标记为不可调度,随后进行疏散并从 GCloud 中删除。

应用场景

  • 针对 GKE 集群中预置实例的自动管理,防止大规模服务中断。
  • 优化资源利用,减少因预置实例突然终止导致的应用波动。

已知限制

  • 目前不支持选择特定的节点池,而是处理集群中的所有预置实例。
  • 这个工具可能会增加小规模中断的频率,但并不能完全避免大规模中断,因为 GCP 对预置实例的管理方式可能导致大范围影响。
  • 建议配合 Pod Disruption Budget 和足够的副本数量来提高安全性。

使用方法

通过环境变量或命令行标志配置以下设置:

  • BLACKLIST_HOURS: 设置不允许删除的UTC时间段。
  • DRAIN_TIMEOUT: 设置节点疏散的最大等待时间。
  • FILTERS: 设置基于标签的过滤条件。
  • INTERVAL: 设置检查节点的间隔时间。
  • KUBECONFIG: 提供 kubeconfig 文件路径(如果在集群外部运行)。
  • METRICS_LISTEN_ADDRESS: 监听 Prometheus 指标请求的地址。
  • METRICS_PATH: 指定 Prometheus 指标请求的路径。
  • WHITELIST_HOURS: 设置优先允许删除的UTC时间段。

部署与开发

可以使用 Helm 或 Kustomize 进行安装:

  • 使用Helm安装或升级:
helm repo add estafette https://helm.estafette.io
helm upgrade --install estafette-gke-preemptible-killer --namespace estafette estafette/estafette-gke-preemptible-killer
  • 使用Kustomize部署: 创建 kustomization.yaml 文件,然后执行 kubectl apply -k . 来应用更改。

对于开发人员,可以使用 Go 语言进行本地测试和调试,包括构建、测试和tidy模组。

项目特点

  • 自动化管理预置实例,降低大规模服务中断的风险。
  • 灵活的配置选项,可以根据实际需求调整删除策略。
  • 支持 Prometheus 指标暴露,便于监控和集成。
  • 可直接通过 Helm 或 Kustomize 快速部署。

通过 estafette-gke-preemptible-killer,你可以更高效地管理 GKE 中的预置实例,提升集群的稳定性和可用性。立即尝试,在你的 GKE 集群中部署这一强大工具吧!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴艺音

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值