创建命名空间后注入 cronjob

Inject cronjob once namespace created

这主要针对具有可抢占节点的GKE集群。 Google Cloud 会在没有警告的情况下关闭任何节点,这会导致很多 pods 处于 Terminated 和/或 NodeShutdown 状态。我目前的 UAT 环境是一个 GKE 集群,有数百个租户,每个租户占用一个命名空间。删除所有具有 Terminated 和/或 NodeShutdown 状态(意味着跨命名空间)的 pods 会花费很长时间,而且作为单个 运行 并不实用,所以我认为每个命名空间 运行 可能更好] 自己的 'janitor' Cronjob。现在,我可以使用现有命名空间手动创建 Cronjob,但我无法阻止我的同事为他们的租户创建其他命名空间。所以我开始考虑是否可以做类似 Istio auto sidecar injection 的事情。

只是好奇有人知道我应该从这里挖掘什么文件/github 回购协议。或者,如果我的想法可能完全错误,请指出正确的方法来解决这个问题。

so I think it might be better for each namespace running its own 'janitor' Cronjob. Now, I could create Cronjob manually with existing namespaces, but I can't stop my colleagues to create other namespaces for their tenants. So I start to think of if I could do similar thing just like Istio auto sidecar injection.

您可以编写自己的 CRD 或控制器,默认将 Job 或 Cronjob 注入到新建的命名空间中。

任何创建新命名空间的人,都会有这个 cronjob(看门人)运行ning 用于清理。

我正在研究这个 CRD 或控制器 daemonjob 它将 运行 在每个 Node 上作为 工作。也许您可以以此为基础并进一步更新它以实现您的场景。

https://github.com/AmitKumarDas/metac/blob/master/examples/daemonjob/sync.py