当一个kubernetes对象有父对象时,它会在“ownerReferences”下被提到。例如,当我以yaml格式打印pod规范时,我看到ownerReferences如下所示:
ownerReferences:
- apiVersion: apps/v1
blockOwnerDeletion: true
controller: true
kind: StatefulSet
name: statefuleset-name
uid: <uuid>
....
我看到ownerReferences是一个列表。有谁知道什么时候ownerReferences会有多个条目。我无法想象一个物体有一个以上的所有者。
3条答案
按热度按时间i7uaboj41#
如果我理解正确的话,在某些情况下是可能的。
在this blog中,您可以看到多个
ownerReferences
的示例。该博客解释了K8s中的垃圾收集,并展示了多个ownerReferences是可能的:是的,你听到了,现在postgres-namespace可以由多个数据库对象拥有。
希望能帮上忙。
xqnpmsa82#
您可以拥有自己的用例和各自的CRD,并且可能需要将一个对象与多个所有者相关联。
举一个非常基本的例子,假设有一个学校,有多个老师和多个学生,如果所有3个都是不同的CRD,那么学生可能有学校名称为
School
的OwnerReference和教师名称为Teacher
的OwnerReference。顺便说一下,cluster-api在它的一些CRD中使用了多个ownerReferences。
7y4bm7vi3#
为了对此进行扩展,将所有者引用用于两个场景:
1.无用单元收集
1.收养(例如基于选择器将现有pod转换为部署)
垃圾收集以统一的方式工作;对象是删除所有所有者之后的候选对象。
后来添加了
controller
字段以支持场景(2)。