使用 K8s-Cleaner 优化 Kubernetes

让我们探索 K8s-cleaner 如何轻松增强 Kubernetes 资源的清洁度和健康状况。

什么是K8s-Cleaner?
K8s-cleaner 就像您的个人组织者,但适用于您的 Kubernetes 集群。它扫描并识别那些只是占用空间的东西,例如未使用或过时的资源,然后通过删除它们来进行数字春节大扫除。

K8s-cleaner 附带了一个方便的工具包或库,就像 Kubernetes 集群的超级英雄。它配备了不同的“清理”工具来发现未使用的资源、过期的东西,甚至是不健康的东西。详细情况如下:

  1. 未使用的资源侦探:
    • 这些清理器可以找到诸如被遗忘的 ClusterRoles、无人使用的 ConfigMap、老式部署等内容。这就像让一名侦探发现 Kubernetes 集群中所有占用空间的东西。
  • 过期资源调查员:
    • 这套清洁工就像您的私人计时器。他们可以使用不同的方法来发现已经过时的资源:
      • 生存时间(TTL):查找已经存在太久的东西。
      • 过期日期:指出具有“此日期前最佳”日期的资源,该日期现已成为历史。
      • 年龄:嗅出那些变得太旧的东西。
  • 不健康资源发现者:
    • 这些清洁工具有敏锐的洞察力,能够发现不健康的资源。例如:
      • 具有过时机密的 Pod:识别正在使用需要更新的机密的 Pod。
      • 证书已过期的 Pod:使用已过期的证书嗅探出 Pod。
      • 具有幽灵服务的 Ingress:查找涉及不存在服务的 Ingress 规则,这可能意味着麻烦。
      • 具有虚构的 ConfigMap 或 Secret 的部署:捕获尝试使用已消失的 ConfigMap 或 Secret 的部署。
    可以将其想象为您的 Kubernetes 集群有一个超级英雄团队,确保一切都井然有序,没有任何事情超出其欢迎范围,并且您的所有资源都健康且快乐!

    K8s-Cleaner 通知
    8s-cleaner 不只是安静地完成其工作;它让您随时了解通知 - 将它们视为友好的更新。以下是它如何让您知道发生了什么:

    1. 清理进度更新:
      • 当 K8s-cleaner 进行清洁舞蹈时,它可以向您发送一条快速消息,让您知道事情进展如何。这就像获取数字清理进度的最新信息。
  • 可配置的通知方法:
    • K8s-cleaner 非常灵活 – 它可以让您选择您想要的通知方式。无论是通过 Slack、电子邮件还是其他方式,您都可以决定如何接收这些通知。
  • 清理行动的透明度:
    • 清理完成后,K8s-cleaner 不会消失。它会留下一条消息,为您提供有关清理了哪些资源的报告。这就像一张友好的便条,说:“嘿,我帮你整理了一些东西!”
    因此,K8s-cleaner 中的通知就像一个有用的助手,可以让您随时了解清洁过程,确保您能够控制并了解 Kubernetes 世界中发生的情况。

    如何使用K8s-Cleaner
    首先安装 K8s-Cleaner。您可以使用以下命令:

    kubectl apply -f https://raw.githubusercontent.com/hjacobs/kube-resource-cleaner/master/manifests/kube-resource-cleaner.yaml


    创建一个配置文件,例如k8s-cleaner-config.yaml,您可以在其中指定要清理的资源。下面是清理 Deployment 和 ConfigMap 的示例:

    apiVersion: kube-resource-cleaner.hjacobs.com/v1alpha1<font></font>
    kind: CleanupPolicy<font></font>
    deployments:<font></font>
    - exclude:<font></font>
        - my-important-deployment<font></font>
    configMaps: {}<font></font>

    将配置应用到您的集群:
    kubectl apply -f k8s-cleaner-config.yaml


    配置完成后,将 K8s-Cleaner 作为 Kubernetes 作业运行:
    kubectl create job --from=cronjob/kube-resource-cleaner k8s-cleaner-job

    通过检查 K8s-Cleaner Job 的日志来监控清理进度:
    kubectl logs -l job-name=k8s-cleaner-job

    K8s-Cleaner 运行后,检查你的 Kubernetes 集群,确保指定的资源已被清理:
    kubectl get deployments
    kubectl get configmaps

    总结
    本分步指南以及代码片段将帮助您有效使用 K8s-Cleaner 维护整洁高效的 Kubernetes 环境。根据你的具体要求调整配置,享受自动化资源管理带来的好处。