watch.Interface vs.cache.NewInformer vs.cache.NewSharedIndexInformer
監控Kubernetes 叢集中的資源時,Kubernetes client-go 中有多個選項可用包裹。本文旨在闡明 watch.Interface、cache.NewInformer、cache.NewSharedInformer 和 cache.NewSharedIndexInformer 之間的差異。
抽象層級
這些API 之間的主要區別在於它們的層級抽象層:
- watch.Interface 提供最低層級的抽象,可以直接存取來自API伺服器的事件流。
- cache.NewInformer為手錶介面添加了緩存,可以更輕鬆地管理記憶體中的資源。
- cache.NewSharedInformer和cache.NewSharedIndexInformer是更高層級的跨多個資訊者共享資源並添加索引以實現高效資料擷取的抽象,
功能
watch.Interface
- 取得一個監視通道,該通道發出新增、修改和刪除事件特定資源。
- 提供對事件的原始訪問,但需要手動事件
cache.NewInformer
- 類似watch.接口,但自動管理緩存,並提供OnAdd()、OnUpdate()、和OnDelete() 事件處理程序。
- 包括對快取資源的存取狀態,使其成為追蹤隨時間變化的理想選擇。
cache.NewSharedInformer
- 與其他通知者共用 API 伺服器連線和監視通道。
- 透過避免重複連接和減少記憶體來有效管理資源
cache.NewSharedIndexInformer
- 為快取資料添加索引,為快取資料添加索引,允許透過特定屬性更快檢索資源。
- 在處理大型資料集或需要根據特定查詢資源時很有用criteria.
推薦
大多數情況下,建議使用cache.NewSharedInformer或cache .NewSharedIndexInformer進行資源監控。這些更高層級的抽象提供了效能和易用性之間的平衡方法,同時處理監視管理和快取的複雜性。
以上是監控 Kubernetes 資源時:watch.Interface、cache.NewInformer 還是 cache.NewSharedInformer?的詳細內容。更多資訊請關注PHP中文網其他相關文章!