안녕하세요! 오늘은 Backstage의 강력한 기능 중 하나인 Kubernetes 통합을 가능하게 만드는 핵심 구성 요소, 바로 Kubernetes 백엔드 플러그인에 대해 아주 상세히 알아보겠습니다. 🚀
클라우드 네이티브 환경에서 개발자 포털(Backstage)을 운영할 때, 자신이 만든 서비스가 쿠버네티스 클러스터 위에서 어떻게 돌아가고 있는지(Pod 상태, 배포 현황 등)를 한눈에 보는 것은 매우 중요합니다. 이 마법 같은 연결을 담당하는 주인공을 지금 바로 만나보시죠! 💡

🏗️ 정답은 바로: @backstage/plugin-kubernetes-backend ☸️
Backstage 포털에 쿠버네티스 리소스 데이터를 통합하고 API를 제공하는 핵심 백엔드 플러그인은 바로 **@backstage/plugin-kubernetes-backend**입니다.
이 플러그인은 각 서비스(Entity)와 관련된 실제 쿠버네티스 리소스(Pods, Deployments, Services, Ingress 등)를 조회하여 프론트엔드에 전달하는 중추적인 역할을 수행합니다.
🌟 Kubernetes 백엔드 플러그인의 핵심 역할
단순히 데이터를 가져오는 것을 넘어, 이 플러그인은 다음과 같은 복잡한 작업들을 수행합니다.
1. 다중 클러스터 데이터 수집 (Multi-cluster Support) 🌐
대부분의 기업은 개발, 스테이징, 운영 등 여러 개의 쿠버네티스 클러스터를 운용합니다. 이 플러그인은 설정된 모든 클러스터에 접속하여 관련 데이터를 긁어모으는 역할을 합니다.
2. 엔티티 매핑 (Service-to-Cluster Mapping) 🔗
가장 중요한 기능입니다! Backstage 카탈로그에 등록된 특정 '서비스'가 쿠버네티스 상의 어떤 '리소스'인지 매칭합니다. 보통 YAML 파일에 설정된 backstage.io/kubernetes-id 레이블을 기준으로 데이터를 필터링합니다.
3. 인증 및 보안 (Authentication) 🔐
각 클러스터에 안전하게 접근하기 위해 Service Account 토큰, 클러스터 인증서, 혹은 클라우드 제공자(AWS EKS, GCP GKE 등)의 인증 방식을 처리합니다.
🛠️ 어떻게 설치하고 설정하나요?
Backstage 모노레포 구조에서 이 플러그인을 활성화하는 방법은 다음과 같습니다.
1단계: 패키지 설치 📦
터미널에서 백엔드 패키지에 라이브러리를 추가합니다.
Bash
yarn workspace backend add @backstage/plugin-kubernetes-backend
2단계: 백엔드 코드 등록 ⚙️
최신 Backstage 시스템(New Backend System) 기준, packages/backend/src/index.ts에 아래 내용을 추가합니다.
TypeScript
backend.add(import('@backstage/plugin-kubernetes-backend/alpha'));
3단계: app-config.yaml 설정 📝
가장 중요한 부분입니다. 어떤 클러스터에 어떻게 접속할지 명시해야 합니다.
YAML
kubernetes:
serviceLocatorMethod:
type: 'multiTenant'
clusterLocatorMethods:
- type: 'config'
clusters:
- url: https://<apiserver-url>
name: my-cluster
authProvider: 'serviceAccount'
skipTLSVerify: false
# ... 기타 인증 설정
🔍 프론트엔드와의 찰떡궁합: plugin-kubernetes
백엔드 플러그인이 데이터를 가져온다면, 사용자가 보는 화려한 대시보드는 @backstage/plugin-kubernetes(프론트엔드 플러그인)가 담당합니다. 🎨
- 백엔드: 클러스터 API와 통신하여 JSON 데이터를 가져옴.
- 프론트엔드: 가져온 데이터를 바탕으로 Pod의 상태(Running, Error 등)를 시각화하고 로그를 보여줌.
💡 실전 팁: 내 서비스가 왜 안 보일까요? 🤔
만약 플러그인을 설치했는데도 데이터가 보이지 않는다면 다음 두 가지만 확인하세요!
- 레이블 확인: 서비스의 쿠버네티스 리소스(Deployment 등)에 backstage.io/kubernetes-id: <내-앱-ID> 레이블이 붙어있나요?
- 어노테이션 확인: Backstage catalog-info.yaml 파일에 backstage.io/kubernetes-id: <내-앱-ID> 어노테이션이 추가되어 있나요?
이 두 ID가 일치해야 백엔드 플러그인이 "아! 이 Pod가 이 서비스꺼구나!"라고 인지합니다. ✨
🏁 결론: 인프라 가시성의 완성
@backstage/plugin-kubernetes-backend는 파편화된 인프라 정보를 개발자 중심의 뷰로 통합하는 핵심 도구입니다. 이 플러그인을 통해 개발자들은 인프라 부서에 문의하지 않고도 자신의 서비스 상태를 스스로 점검할 수 있는 Self-service 환경을 구축할 수 있습니다! 🚀
'클라우드 > Backstage' 카테고리의 다른 글
| 컨테이너에 생명 불어넣기: 환경별 Backstage 설정 주입의 모든 것 (0) | 2025.12.27 |
|---|---|
| Backstage 보안 마스터: 설정 재정의와 비밀정보 관리의 권장 가이드 (0) | 2025.12.27 |
| Backstage 안정성의 열쇠: Yarn lock파일과 결정적 설치의 모든 것 (0) | 2025.12.27 |
| Backstage 마스터하기: 소스 코드로 향하는 지도, source-location 어노테이션 완벽 가이드 (0) | 2025.12.27 |
| Backstage 모노레포의 보물창고, "common-library" 완벽 활용법 (0) | 2025.12.27 |