美文网首页kubernetes
kube-green项目介绍

kube-green项目介绍

作者: Go语言由浅入深 | 来源:发表于2023-01-08 16:01 被阅读0次

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

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

    环境影响

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

    • minecraft(一个游戏)的总排放量约为6亿公斤二氧化碳,相当于开车行驶约21亿公里(数据来源于网络)
    • 比特币每年产生2200万到2290万公吨的二氧化碳排放量,排放量介于约旦和斯里兰卡的排放量之间。
    • 这里可以看到我们的电子邮件产生了多少二氧化碳排放。
      Kubernetes集群也不例外。此外,如果它们在云提供商中运行,即使没使用,它们也会产生二氧化碳。

    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/

    相关文章

      网友评论

        本文标题:kube-green项目介绍

        本文链接:https://www.haomeiwen.com/subject/mafycdtx.html