在監測中
在監控中在監視
簡介
在監視器簡介
在監控Kubernetes 資源並對變更做出反應時,開發人員可以從Kubernetes client-go 套件中的各種選項中進行選擇。本文旨在闡明 watch.Interface、cache.NewInformer、cache.NewSharedInformer 和 cache.NewSharedIndexInformer 之間的差異。
watch.Interface
watch.Interface 是一個低階抽象,讓您可以透過 ResultChan() 監控 Kubernetes 資源的變更。它提供新增/修改/刪除事件,使您可以了解資源變更。但是,它僅包含資源的“之後”狀態。
cache.NewInformer
cache.NewInformer 引入了更高層次的抽象。它包括觀察器、列表器和記憶體快取。透過實作cache.ResourceEventHandler,您可以接收OnAdd()/OnUpdate()/OnDelete()呼叫。這為您提供了資源的“之前”和“之後”狀態,從而更方便地進行更改處理。 cache.NewSharedInformercache.NewSharedInformer在您的檢舉者之間共用與 API 伺服器和其他資源的連線。這可以優化資源使用並提高效能。除非您對隔離有特定要求,否則建議使用 cache.NewInformer。 cache.NewSharedIndexInformercache.NewSharedIndexInformer 將索引新增至資料快取。如果您正在處理大型資料集並且需要高效的索引以進行快速查找和過濾,這尤其有用。它是功能最豐富的選項,但實現起來也是最複雜的。 推薦在大多數用例中,建議使用 SharedInformers 而不是較低的層次抽象。 SharedInformers 提供效能優勢並簡化資源管理。從同一個 SharedInformerFactory 實例化新的 SharedInformers 以實現最佳資源利用。以上是何時使用 watch.Interface、cache.NewInformer、cache.NewSharedInformer 和 cache.NewSharedIndexInformer?的詳細內容。更多資訊請關注PHP中文網其他相關文章!