gpt4 book ai didi

kubernetes - 如何使用 watch api 避免丢失历史删除事件

转载 作者:行者123 更新时间:2023-12-02 12:20:18 27 4
gpt4 key购买 nike

我正在使用 watch API 实现一个自定义资源 Controller 。在 kubernetes 中创建/删除对象时,需要在 aws 中创建/删除对象。

当它启动 watch 时,它会收到一个历史事件列表。但是,我注意到,如果创建一个对象然后删除,这些事件会在历史事件流中“取消”。也就是说,当我开始监视时,我没有看到给定对象的 ADDED 事件和 DELETED 事件,我根本看不到任何事件,就好像它从未存在过一样。这意味着如果一个对象在 Controller 关闭时被删除,它将在它重新启动时完全错过这个删除事件。

对于需要在删除 Kubernetes 对象时执行操作的 Controller (例如,删除 AWS 中的对象),推荐的方法是什么?有没有办法让 kubernetes 保持 DELETED 事件?是否只是期望 Controller 通过轮询所有命名空间中所有对象的列表而不是使用 watch API 来工作?

最佳答案

如果您需要将一个系统中的现有对象的状态或列表与另一个系统中的对象同步,您应该能够获取两个系统上的对象列表,比较它们并处理差异。

如果你只依赖于观察像 CREATE 和 DELETE 这样的即时事件,你迟早会得到不同步的系统。

我能想象的关于 Kubernetes apiserver 事件的唯一可靠信息来源是 Audit log .

关于kubernetes - 如何使用 watch api 避免丢失历史删除事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51482751/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com