소개
Kubernetes 리소스를 모니터링하고 변경 사항에 대응할 때 개발자는 Kubernetes client-go 패키지의 다양한 옵션 중에서 선택할 수 있습니다. 이 문서의 목적은 watch.Interface, 캐시.NewInformer, 캐시.NewSharedInformer 및 캐시.NewSharedIndexInformer.
watch.Interface
watch.Interface의 차이점을 명확히 하는 것입니다. ResultChan()을 통해 Kubernetes 리소스의 변경 사항을 모니터링할 수 있는 낮은 수준의 추상화입니다. 추가/수정/삭제 이벤트를 제공하여 리소스 변경 사항에 대한 가시성을 제공합니다. 그러나 여기에는 리소스의 "이후" 상태만 포함됩니다.
cache.NewInformer
cache.NewInformer는 더 높은 수준의 추상화를 도입합니다. 여기에는 감시자, 목록자 및 메모리 내 캐시가 포함됩니다. 캐시.ResourceEventHandler를 구현하면 OnAdd()/OnUpdate()/OnDelete() 호출을 수신할 수 있습니다. 이는 리소스의 "이전" 및 "이후" 상태를 모두 제공하므로 변경 처리가 더욱 편리해집니다.
cache.NewSharedInformer
cache.NewSharedInformer 귀하의 정보 제공자 간에 API 서버 및 기타 리소스와의 연결을 공유합니다. 이렇게 하면 리소스 사용이 최적화되고 성능이 향상됩니다. 격리에 대한 특정 요구 사항이 없는 한cache.NewInformer보다 권장됩니다.
cache.NewSharedIndexInformer
cache.NewSharedIndexInformer는 데이터 캐시에 인덱스를 추가합니다. 이는 대규모 데이터 세트로 작업하고 빠른 조회 및 필터링을 위해 효율적인 인덱싱이 필요한 경우 특히 유용합니다. 기능이 가장 풍부한 옵션이지만 구현하기가 가장 복잡합니다.
권장사항
대부분의 사용 사례에서는 하위 버전 대신 SharedInformers를 사용하는 것이 좋습니다. 레벨 추상화. SharedInformers는 성능상의 이점을 제공하고 리소스 관리를 단순화합니다. 최적의 리소스 사용을 위해 동일한 SharedInformerFactory에서 새 SharedInformer를 인스턴스화합니다.
위 내용은 watch.Interface,cache.NewInformer,cache.NewSharedInformer 및cache.NewSharedIndexInformer를 언제 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!