删除名称空间会挂在自定义资源终结器上

时间:2019-06-02 17:15:40

标签: kubernetes kubernetes-custom-resources

我在K8S命名空间中定义了一个控制器(操作员)来处理一些自定义资源。 每个自定义资源都有一个终结器,因此控制器可以在删除它之前对其进行处理:

例如

kind: MyCustom
metadata:
 finalizers:
    - MyCustom.finalizers.com
 name: mycustomResourceInstance

这很好,直到删除名称空间(“ kubectl delete ns”)。 如果k8s垃圾首先收集了控制器容器,则“ mycustomResourceInstance”会停留在删除状态,并阻止成功删除命名空间。

解决方法是编辑mycustomResourceInstance并删除终结器。

有什么方法可以确保在命名空间中存在自定义资源的任何实例时,不会删除控制器?

1 个答案:

答案 0 :(得分:0)

您必须查看所有者引用和前景级联删除https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/并将其实现到控制器中,以便垃圾回收器按顺序删除对象。