使用 K8s-Cleaner 优化 Kubernetes

💡 原文中文,约2300字,阅读约需6分钟。
📝

内容提要

K8s-Cleaner是一个用于优化Kubernetes的工具,可以清理未使用、过期或不健康的资源。它提供了不同的清理工具,如未使用资源侦探、过期资源调查员和不健康资源发现者。K8s-Cleaner还提供通知功能,可以通过Slack、电子邮件等方式向用户发送清理进度更新。用户可以通过安装K8s-Cleaner并创建配置文件来使用它。使用K8s-Cleaner可以维护整洁高效的Kubernetes环境。

🔎

延伸解读

三类清理器的适用场景

K8s-Cleaner 将清理能力分为三类:未使用资源侦探针对被遗忘的 ClusterRoles、无人使用的 ConfigMap 和老式部署;过期资源调查员依据 TTL、过期日期和年龄识别过时资源;不健康资源发现者则检查使用过时机密或过期证书的 Pod、指向不存在服务的 Ingress,以及引用已消失 ConfigMap 或 Secret 的部署。读者可据此判断哪类清理器更贴合自身集群的常见问题。

通知机制带来的可观测性

文章强调 K8s-Cleaner 并非静默执行,而是通过 Slack、电子邮件等方式发送清理进度更新,并在清理完成后留下报告,说明清理了哪些资源。这种可配置的通知与事后报告,让运维人员能掌握清理动作的透明度,避免自动化删除操作在无人知晓的情况下进行,适合需要审计或团队协作的环境。

配置与运行的基本流程

使用 K8s-Cleaner 需先通过 kubectl apply 安装,再创建类似 k8s-cleaner-config.yaml 的配置文件,其中可指定要清理的 Deployment 和 ConfigMap,并支持用 exclude 排除重要资源。配置应用后,以 Kubernetes 作业方式运行,并通过查看 Job 日志监控进度,最后用 kubectl get 检查资源是否已被清理。这一流程表明它依赖用户显式定义清理范围。

使用前需留意的边界

文章示例中通过 exclude 字段排除 my-important-deployment,说明清理策略需要人工预先设定保护名单。同时,清理效果需运行后手动检查 Deployment 和 ConfigMap 来确认。因此,在实际使用中,读者应关注配置的准确性,并理解该工具不会自动判断哪些资源对业务关键,避免误删仍需保留的对象。

❓

Q&A

K8s-Cleaner 是什么?它有什么作用?

K8s-Cleaner 是一个用于优化 Kubernetes 的工具,可以扫描并识别未使用、过期或不健康的资源,然后通过删除它们来清理集群,从而维护整洁高效的 Kubernetes 环境。

K8s-Cleaner 提供了哪些清理工具?

K8s-Cleaner 提供了三种清理工具:未使用资源侦探、过期资源调查员和不健康资源发现者。

未使用资源侦探能发现哪些类型的资源?

未使用资源侦探可以找到被遗忘的 ClusterRoles、无人使用的 ConfigMap、老式部署等占用空间的资源。

过期资源调查员通过哪些方法发现过期资源?

过期资源调查员通过生存时间(TTL)、过期日期和年龄来发现已经过时的资源。

不健康资源发现者能识别哪些不健康的资源?

不健康资源发现者能够识别使用过时机密的 Pod、证书已过期的 Pod、具有幽灵服务的 Ingress,以及具有虚构的 ConfigMap 或 Secret 的部署。

K8s-Cleaner 如何通知用户清理进度?

K8s-Cleaner 提供通知功能,可以通过 Slack、电子邮件等方式向用户发送清理进度更新,并在清理完成后留下报告,说明清理了哪些资源。

如何安装和使用 K8s-Cleaner?

首先使用 kubectl apply 命令安装 K8s-Cleaner,然后创建配置文件(如 k8s-cleaner-config.yaml)指定要清理的资源,将配置应用到集群,再以 Kubernetes 作业运行,并通过日志监控进度。

K8s-Cleaner 的配置文件示例是什么样的?

配置文件示例包括指定要清理的 Deployment 和 ConfigMap,例如可以排除特定的 Deployment(如 my-important-deployment),并清理所有 ConfigMap。

🏷️

标签

➡️

继续阅读