在 Kubernetes 中,"属主"(Owner)和"附属"(Dependent)通常是指一个资源(通常是控制器对象)与另一个资源(通常是由该控制器管理的对象)之间的关系。这种关系是通过 Kubernetes 中的"所有者引用"(OwnerReference)来实现的。

所有者引用(OwnerReference):

所有者引用是一种在 Kubernetes 中用于建立资源之间关系的机制。当一个资源是另一个资源的所有者时,它会在自己的metadata.ownerReferences字段中包含一个引用。这意味着被引用的资源是引用资源的属主。

例如,一个 Deployment 控制器可能是一个 Pod 对象的属主,因为该 Deployment 控制器负责创建和管理 Pod。在 Deployment 控制器的 metadata.ownerReferences 字段中,就会包含对其管理的 Pod 对象的引用。

属主与附属的关系:

1. 属主: 通常是一个控制器对象,比如 Deployment、StatefulSet 等。属主负责创建和管理附属对象,它们通常是由控制器自动创建的。

2. 附属: 由属主对象所管理的对象,例如由 Deployment 控制器创建和管理的 Pod。附属对象的生命周期通常依赖于其属主。

生命周期管理:

当属主对象被删除时,根据配置的控制器行为,它可以选择删除与之关联的附属对象。这有助于确保在删除控制器时,相关的资源也会被清理掉。

示例:

以下是一个 Deployment 控制器的 YAML 示例,其中包含对其管理的 Pod 对象的所有者引用:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: nginx:latest

在这个示例中,my-deployment 是 Deployment 控制器的对象,而其下的 Pod 对象是附属对象。Deployment 控制器会在其 metadata.ownerReferences 字段中包含对 Pod 对象的引用。

这种属主与附属的关系有助于 Kubernetes 中资源的管理、清理和组织。


转载请注明出处:http://www.zyzy.cn/article/detail/9700/Kubernetes