목록 보기
쿠버네티스에서 노드가 추가될 때마다 슬랙 알람 쏘기
데브옵스

쿠버네티스에서 노드가 추가될 때마다 슬랙 알람 쏘기

스캐터랩 핑퐁
스캐터랩 핑퐁
2022년 8월 16일

두줄요약

쿠버네티스 Event Watch API로 노드 추가를 감지하는 알림 프로그램 구현 방식을 설명했습니다.\nEvent TTL·중복 처리와 RBAC, 사이드카 프록시를 포함한 배포 구성을 함께 다뤘습니다.

구조와 흐름

  • Cluster Autoscaler의 노드 증설을 NodeReady 이벤트로 감지하는 알림 프로그램
  • events.k8s.io/v1 Event의 regarding, reason, note, type 필드 기반 이벤트 분류
  • Watch API의 스트리밍 응답에서 ADDED 이벤트만 선별해 노드 상태 처리

주의할 점

  • core/v1 Event와 events.k8s.io/v1 Event 간 필드 차이로 API 그룹·버전 명시 필요
  • 기본 TTL 이후 사라지는 Event 특성상 고일관성 작업의 근거로 사용 불가
  • 최초 Watch 시 과거 이벤트 중복 처리 가능성에 따른 resourceVersion 또는 생성 시각 활용 필요

해결 방법

  • Go HTTP 클라이언트로 Event Watch API 연결 후 NodeReady·NodeNotReady 이벤트 처리
  • 알림 전송과 노드 레이블 정보 결합 등 요구사항별 확장 가능
  • 연결 단절 대비 재연결 로직과 Deployment 기반 self-healing 적용

성능/운영 포인트

  • ServiceAccount, ClusterRole, ClusterRoleBinding으로 전체 네임스페이스 Event 조회 권한 구성
  • 동일 파드의 kubectl proxy 사이드카를 통한 API 서버 통신 단순화
  • 이벤트가 대량 발생하는 프로덕션 클러스터보다 소규모 개발 클러스터에 적합

다음 읽기

#Kubernetes 주제를 이어서 읽기

루다 선톡을 대비하는법

선톡으로 인한 급격한 트래픽에 대비해 발송 예정 메시지 수 기반의 Prescaler를 설계했습니다.\nCustom Resource와 Controller로 HPA의 minReplicas를 사전 조정했습니다.

스캐터랩 핑퐁
스캐터랩 핑퐁
데브옵스

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...