
Fabric8로 서비스별 Pod 상태 조회하기
두줄요약
Fabric8 Kubernetes Client로 Spring Boot 서비스에서 Pod 상태를 REST API로 조회하는 구성을 소개했습니다.\nin-cluster 인증과 RBAC 최소 권한 설정, 예외 처리 방법을 함께 다뤘습니다.
문제 상황
- SSH 접속과 kubectl 수동 조회에 따른 권한 관리·감사 추적·연동 한계
- 대시보드, 알림, 다중 네임스페이스 통합 조회를 위한 서비스 단 Pod 상태 API 요구
선택 이유
- Fluent API 기반 Pod·라벨 조회 지원의 Fabric8 Kubernetes Client
Config.autoConfigure()를 통한 in-cluster 설정과 로컬 kubeconfig 자동 탐지- Spring Boot 및 Spring Cloud Kubernetes와의 자연스러운 결합
구조와 흐름
KubernetesClientBean 등록 후 네임스페이스별 목록·라벨 필터·단건 Pod 조회 서비스 구성- Pod 이름·상태·노드·라벨·생성 시각을
PodSummary로 변환해 REST API 노출 KubernetesClientException의 401·403 상태 코드 기반 공통 예외 응답
주의할 점
- 외부 접속 시
127.0.0.1대신 실제 API 서버 엔드포인트 확인 - 배포 Pod의 ServiceAccount에
pods리소스get·list·watch최소 권한 부여 - 다중 네임스페이스 조회 시 ClusterRole·ClusterRoleBinding 범위 신중한 확장
