watch.Interface、cache.NewInformer 和 cache.NewSharedIndexInformer
监视 Kubernetes 资源并对其更改做出反应对于许多应用程序至关重要。 Kubernetes client-go 提供了多种方法来实现这一点,包括 watch.Interface、cache.NewInformer 和 cache.NewSharedIndexInformer。然而,理解它们的差异可能具有挑战性。
watch.Interface
watch.Interface 提供了表示资源更改的事件通道。可以添加、修改或删除这些事件。但是,watch.Interface 只提供资源的当前状态,而不提供其之前的状态。
cache.NewInformer
cache.NewInformer 包装了一个 watch.Interface 以及附加的功能。它在内存中维护资源缓存,并提供添加和删除处理程序的方法,以便在资源更改时接收通知。与 watch.Interface 相比,使用 informer 的主要优点是它可以访问已修改资源的先前状态。
cache.NewSharedInformer 和 cache.NewSharedIndexInformer
cache.NewSharedInformer 和cache.NewSharedIndexInformer 通过添加共享资源和索引建立在通知程序的概念之上。
选择正确的方法
选择使用哪种方法取决于应用程序的具体要求:
一般来说,建议大多数应用程序使用cache.NewSharedInformer或cache.NewSharedIndexInformer。它们提供了更高级别的抽象,并解决了与监控 Kubernetes 资源相关的常见性能和资源管理挑战。
以上是如何选择合适的 Kubernetes 资源监控工具:watch.Interface、cache.NewInformer 还是 cache.NewSharedIndexInformer?的详细内容。更多信息请关注PHP中文网其他相关文章!