课件
Kubernetes 中的 ownerReference
字段用于建立资源之间的所有者关系,即父子关系。这个字段可以用来指定一个资源是另一个资源的所有者。例如,一个 Deployment 可以拥有多个 Pod,这些 Pod 就可以通过 ownerReference
字段引用到对应的 Deployment 资源。
ownerReference
字段包含以下几个属性:
apiVersion
:引用资源的 API 版本。kind
:引用的资源类型。name
:引用资源的名称。uid
:引用资源的唯一标识符。controller
:标识这个所有关系是否是控制器-被控制器关系的布尔值。如果为 True,则表示这个资源是一个控制器,它拥有或管理着其他资源。
在 Kubernetes 中,ownerReference
字段通常用于实现控制器模式,例如 ReplicaSet 和 Deployment 等控制器都可以通过 ownerReference
字段来管理其创建的 Pod。这种方式可以确保资源之间的一致性,并且在删除控制器时也可以自动删除控制器创建的所有子资源。
k8s list-watch 是 k8s API Server 提供的一种 RESTful API 操作方式,它可以用来实现对 k8s 资源对象的实时监控和响应。下面是 k8s list-watch 的流程说明:
-
客户端向 k8s API Server 发送一个 GET 请求,请求某个 k8s 资源对象的列表。例如,可以请求获取所有的 Pod 对象。
-
k8s API Server 返回一个包含该资源对象列表的响应结果。
-
客户端对该响应结果进行处理,并记录下该资源对象列表的当前版本号(resourceVersion)。
-
客户端向 k8s API Server 发送一个 GET 请求,请求该资源对象的 watch API。例如,可以请求监控所有的 Pod 对象。
-
k8s API Server 返回一个包含该资源对象列表的响应结果,并保持该连接处于打开状态。
-
当 k8s API Server 上的该资源对象发生变化时,它会向客户端推送一个 JSON 格式的事件通知,通知客户端该资源对象的变化信息,包括事件类型(Added、Modified 或 Deleted)和该对象的最新版本号(resourceVersion)。
-
客户端对该事件通知进行处理,并记录下该资源对象的最新版本号。
-
客户端继续等待下一个事件通知,直到连接关闭或发生错误。
-
如果连接关闭或发生错误,客户端可以重新连接并重复上述流程,以获取该资源对象的最新状态。
总体来说,k8s list-watch 流程可以帮助客户端实时监控 k8s 资源对象的变化,并根据需要进行响应。这对于 k8s 应用程序的开发和运维非常有帮助。
自测题