K8命名空间被删除时如何触发操作



当资源从集群中删除时,kubernetes中是否有任何默认选项来触发一些操作?

Kubernetes默认的方式是使用操作符。

简而言之,您有一个正在运行的软件,它正在监视资源(在您的示例中是Namespaces),并在某些名称空间更改(在您的示例中是删除)时做出反应。

您可能需要将finalizers添加到Namespaces中以进行适当的清理。

详细信息请参考文档

您可以将自己的服务部署为准入webhook。您可以创建一个具有所谓的副作用的,这意味着它不仅可以与所讨论的资源交互,还可以执行其他操作,例如创建卷或类似操作。参考文档:https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/.

有很多方法可以实现这样的服务。例如,使用go,您可以使用Kubernetes本身使用的相同结构,这可以减少开发工作量。请看这个包:https://pkg.go.dev/k8s.io/api/admission/v1。你需要创建一个小型的web服务器来处理post请求,将body解码成一个AdmissionReview结构体。

也有第三方工具可以为您做这件事。我还没用过,但我觉得kyverno可以放在这里:https://kyverno.io/docs/introduction/.

最新更新