쿠버네티스에서 노드가 추가될 때마다 슬랙 알람 쏘기
두줄요약
쿠버네티스 Event Watch API로 노드 추가를 감지하는 알림 프로그램 구현 방식을 설명했습니다.\nEvent TTL·중복 처리와 RBAC, 사이드카 프록시를 포함한 배포 구성을 함께 다뤘습니다.
구조와 흐름
- Cluster Autoscaler의 노드 증설을
NodeReady이벤트로 감지하는 알림 프로그램 events.k8s.io/v1Event의regarding,reason,note,type필드 기반 이벤트 분류- Watch API의 스트리밍 응답에서
ADDED이벤트만 선별해 노드 상태 처리
주의할 점
- core/v1 Event와
events.k8s.io/v1Event 간 필드 차이로 API 그룹·버전 명시 필요 - 기본 TTL 이후 사라지는 Event 특성상 고일관성 작업의 근거로 사용 불가
- 최초 Watch 시 과거 이벤트 중복 처리 가능성에 따른
resourceVersion또는 생성 시각 활용 필요
해결 방법
- Go HTTP 클라이언트로 Event Watch API 연결 후
NodeReady·NodeNotReady이벤트 처리 - 알림 전송과 노드 레이블 정보 결합 등 요구사항별 확장 가능
- 연결 단절 대비 재연결 로직과 Deployment 기반 self-healing 적용
성능/운영 포인트
- ServiceAccount, ClusterRole, ClusterRoleBinding으로 전체 네임스페이스 Event 조회 권한 구성
- 동일 파드의
kubectl proxy사이드카를 통한 API 서버 통신 단순화 - 이벤트가 대량 발생하는 프로덕션 클러스터보다 소규모 개발 클러스터에 적합


