kubernetes

kube-green项目介绍

2023-01-08  本文已影响0人  Go语言由浅入深

这几年碳中和概念出现在各种新闻和大佬的文章中,正好今天看到一个CNCF的项目kube-green也是以减少二氧化碳排放为目标的。我们就来看看该项目到底是怎么做的。

在本文中,我们将介绍kube-green的新功能,并为你提供有关kube-green的其他一些信息。在文中,我将尝试解释该项目是如何诞生的,以及为什么它对减少资源浪费有用。

环境影响

我们在网上所做的一切都会对现实世界的环境都会产生影响。从我们收件箱里的电子邮件到云上的照片和视频,从在线游戏到数字货币,所有这些数字活动都在物理服务器上运行会不断消耗能源。
几个典型的例子:

kube-green项目的构思

在集群中,如果应用不是部署在生产环境的,比如测试环境或开发环境的话,这些应用只会在工作时间会用到。工作时间约为每周40小时。

此外,在Kubernetes中,如果不使用资源,也可以分配(CPU和内存,设置容器的资源情况)。这意味着大多数时候,这些非生产环境中的pod会不必要地消耗资源。
kube-green的基本思想是停止这些环境中的所有pod。


如何实现停止POD

kube-green是一个Kubernetes控制器,它定义了一个名为SleepInfo的自定义资源(CRD)。在命名空间中停止和重新启动pod时定义SleepInfo CRD即可。

因此,例如在开发环境中,可以在非开发业务时间停止所有的pod:从周一到周五每天早上醒来启动服务,从周一到周五每天晚上停止。
来看SleepInfo CRD的一个例子:

apiVersion: kube-green.com/v1alpha1
kind: SleepInfo
metadata:
  name: working-hours
spec:
  weekdays: "1-5"
  sleepAt: "20:00"
  wakeUpAt: "08:00"
  timeZone: "Europe/Rome"
  suspendCronJobs: true

上面定义了一个SleepInfo资源,并在spec里面设置哪些服务具体的启动和停止时间。

可以挂起哪些资源?

使用kube-green的v0.2.0版本,可以只可以停止deployment。其他资源将在未来会添加。

总结

您想要减少Kubernetes集群的二氧化碳排放和成本吗?可以关注kube-green项目。
Github地址:https://github.com/kube-green/kube-green
官网地址:https://kube-green.dev/

上一篇 下一篇

猜你喜欢

热点阅读