Watch.Interface vs. cache.newinformer vs. cache.newsharedidexinformer: различия и когда использовать
Kubernetes предлагает несколько подходов для мониторинга и реагирования на изменения ресурса в кластере. К ним относятся:
- watch.interface.resultchan (): Этот метод позволяет отслеживать изменения в ресурсе, подписываясь на результатхан. Этот канал предоставляет добавленные/модифицированные/удаленные события для ресурса, предоставляя вам обновления в реальном времени в его состоянии.
- cache.newinformer (): интерфейс ресурсаэвентандлера может быть реализован и передан в качестве последнего аргумента Cache.newinformer. Это устанавливает информатора, который запускает onadd ()/onupdate ()/ondelete () обратные вызовы в обработчике, когда происходят изменения ресурсов. Он предоставляет как «до», так и «после» состояний ресурса, что делает его полезным для обработки переходов состояния.
- cache.newsharedinformer () и cache.newsharedIndexinformer (): эти методы предлагают более высокий уровень абстракции путем объединения функциональности. Они вводят sharedinformerfactory, который объединяет соединения с сервером API и обменивается ресурсами между несколькими информаторами. Кроме того, cache.newsharedIndexinformer добавляет индексацию в кэш данных для эффективного извлечения крупных наборов данных. В целом, Informers (cache.newinformer ()) предпочтительнее, чем не Raw Watch.interface для большинства вариантов использования. Они обеспечивают более высокий уровень абстракции и автоматизировать такие задачи, как события фильтрации и очереди.
sharedinformers (cache.newsharedinformer ()) предлагают дополнительную оптимизацию путем обмена соединениями и ресурсами между несколькими информаторами. SharedIndexinformers (cache.newsharedIndexinformer ()) особенно полезны для обработки больших наборов данных, поскольку они повышают эффективность поиска и поиска.
Для комплексного мониторинга ресурсов рекомендуется использовать Sharedinformers, созданные из того же Sharedinformercefactory. Это обеспечивает обмен ресурсами, эффективную обработку больших наборов данных и последовательный вид состояния кластера.
]