控制器是否应该对要删除的资源进行清理?



我是Kubernetes Operators的新手。我有一个关于如何在删除时构思清理的一般问题。

假设控制器正在管理一个资源,该资源由部署等组成。此部署写入某些外部数据库。我希望在删除资源时删除数据库中的项目(但不是在简单地重新启动其Pod时,因此这不能作为应用程序关闭逻辑的一部分(。

似乎数据库清除必须在控制器中进行?但这让我有点不安,因为关于如何存储值的知识似乎是关于所管理的资源的知识,而不是控制器的知识。让控制器向底层应用程序发送消息以执行自己的清理是唯一的其他好选择吗?

处理这类事情的一般方法是什么?

您听说过Kubernetes中的Finalizer和Owner References吗?它的所有者引用描述了对象组之间的关系。它们是资源上的属性,用于指定彼此之间的关系,因此可以删除整个资源树。

为了避免进一步的复制粘贴,我将只在这里留下链接:了解Finalizers

最新更新