Informer
-
client-go의 Reflector와 Watcher의 차이?Kubernetes 2025. 3. 2. 11:41
Kubernetes client-go 라이브러리에서 Reflector와 Watcher는 둘 다 Kubernetes API 서버에서 데이터를 감시(watch)하는 역할을 하지만, 동작 방식과 목적이 다릅니다. Watcher는 저수준 API, Reflector는 캐싱을 지원하는 고수준 API! 1️⃣ Watcher: API 서버의 watch 스트림을 직접 관리🔹 개념Watcher는 API 서버의 watch 엔드포인트를 직접 호출하여 리소스 변경 사항을 실시간으로 감지하는 저수준(LOW-level) 인터페이스입니다.client-go에서 ListerWatcher 인터페이스를 사용하여 직접 구현할 수 있습니다.🔹 동작 방식Kubernetes API 서버의 watch 엔드포인트를 호출하여 변경 사항을 실시간으로..
-
Kubernetes Operator 작성 시 Watcher 또는 Informer 사용?Kubernetes 2025. 3. 2. 10:36
Kubernetes Operator는 보통 Informer 기반의 Controller 패턴을 사용하여 동작 왜 Watcher 대신 Informer만 사용할까?Watcher는 API 서버에 직접 요청을 보내면서 실시간 이벤트를 감지하는 방식이지만, 연결이 끊기거나 장애가 발생하면 재연결이 필요합니다.반면, Informer는 캐시를 활용하여 API 서버 부하를 줄이면서도 리소스 변경을 감지할 수 있어 Operator 개발에 적합합니다. Informer 기반 Controller의 장점API 서버 부하 감소: 캐싱을 활용하여 API 요청 수를 줄임.네트워크 장애에 강함: 클라이언트-API 서버 연결이 끊겨도 캐시에서 데이터 유지.이벤트 기반 처리 가능: AddFunc, UpdateFunc, DeleteFunc을..
-
Kubernetes의 Informer와 Watcher 차이점Kubernetes 2025. 3. 2. 10:31
Watcher와 Informer 모두 Kubernetes에서 클러스터 리소스를 모니터링하고 변경 사항을 감지하는 두 가지 주요 메커니즘 Watcher란?Watcher는 Kubernetes API 서버에서 특정 리소스의 변경 사항을 실시간으로 감지하는 기본 기능이야.kubectl get pods -w 명령어처럼 동작한다고 보면 돼.API 서버와 Persistent Connection(예: HTTP Long Polling 또는 WebSocket) 을 유지하면서 변경 사항이 발생하면 바로 이벤트를 받아.🔹 Watcher의 동작 방식클라이언트가 Kubernetes API 서버에 WATCH 요청을 보냄.API 서버는 해당 리소스의 변경 사항(추가, 수정, 삭제)을 스트리밍 방식으로 전송.클라이언트는 변경 사항을..