watch.Interface 対cache.NewInformer 対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
- の追加、変更、削除されたイベントを発行する監視チャネルを取得します。特定のリソース。
- イベントへの生のアクセスを提供しますが、手動イベントが必要ですHandling.
cache.NewInformer
- watch.Interface に似ていますが、キャッシュを自動的に管理し、OnAdd()、OnUpdate()、イベント処理用の OnDelete() ハンドラー。
- キャッシュされたリソースの状態へのアクセスが含まれており、時間の経過に伴う変化の追跡に最適です。
cache.NewSharedInformer
- API サーバー接続と監視チャネルを他の情報提供者と共有します。
- 重複した接続を回避し、メモリを削減することでリソースを効率的に管理しますoverhead.
cache.NewSharedIndexInformer
- キャッシュされたデータにインデックスを追加し、特定の属性によるリソースの高速な取得を可能にします。
- 大規模なデータセットを操作する場合、または特定のデータセットに基づいてリソースをクエリする必要がある場合に便利です。 criteria.
推奨事項
ほとんどの場合、リソース監視にはcache.NewSharedInformerまたはcache.NewSharedIndexInformerを使用することをお勧めします。これらのより高いレベルの抽象化は、監視管理とキャッシュの複雑さを処理しながら、パフォーマンスと使いやすさの間でバランスの取れたアプローチを提供します。
以上がKubernetesリソースを監視する場合: watch.Interface、cache.NewInformer、またはcache.NewSharedInformer?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。