2

Kubebuilder V3 文档解释说它讨论了“如何将多个事件批处理到单个协调调用中”。但是,我在本文档中找不到有关事件管理的任何信息。

您能否提供有关如何发送事件的信息/代码示例Kubebuilder-v3/operator-sdk

4

2 回答 2

2

官方文档中的这一部分应该回答您的问题:

Controller的这个业务逻辑是在Reconcile函数中实现的。此函数采用 ContainerSet 的命名空间和名称,允许将多个事件一起批处理到单个 Reconcile 调用中。 此处显示的函数使用 ContainerSet.Spec 中指定的副本和映像创建或更新部署。请注意,它会为 Deployment 设置 OwnerReference,以便在删除 ContainerSet 后在 Deployment 上启用垃圾收集。

  1. 使用 NamespacedName 读取 ContainerSet
  2. 如果有错误或已被删除,请返回
  3. 从 ContainerSetSpec 创建新的所需 DeploymentSpec
  4. 阅读 Deployment 并将 Deployment.Spec 与 ContainerSet.Spec 进行比较
  5. 如果观察到的 Deployment.Spec 与所需的规范不匹配 - 未找到部署:创建新的部署 - 找到了部署并需要更改:更新部署

在那里您还可以找到带有代码的示例。

于 2021-12-30T15:26:09.150 回答
0

似乎此页面可能有助于理解如何发送事件:https ://book-v1.book.kubebuilder.io/beyond_basics/creating_events.html使用标准客户端-go EventRecorder

但是,对于 Kubebuilder v3,它不是最新的。

感谢@coderanger 在 k8s 堆栈频道上对这个主题的帮助!

于 2022-01-09T10:54:47.260 回答