Telepresence로 로컬에서 Kubernetes 서비스를 실행하세요
Source: Dev.to
Telepresence란?
Telepresence는 개발 도구로, 로컬 컴퓨터를 Kubernetes 클러스터에 연결해 로컬 애플리케이션이 클러스터 내부에서 실행되는 것처럼 동작하게 합니다.
주요 사용 사례
-
실제 Kubernetes에 대한 로컬 개발
앱을 로컬에서 실행하면서도 클러스터의 Services, ConfigMaps, Secrets 및 실제 API를 사용합니다. -
Service 트래픽 가로채기
클러스터의 Service로 향하던 트래픽을 로컬 애플리케이션으로 전달합니다. -
빠른 디버깅
- 로컬 로그
- 디버거 (VS Code, IntelliJ)
- 핫 리로드
- 브레이크포인트
🙌 원격 또는 프로덕션 클러스터를 건드리지 않고 모두 수행합니다.
전통적인 문제점 (Telepresence 없이)
각 변경마다:
- 코드 수정
docker builddocker pushkubectl apply- 롤아웃 대기
- 테스트
- 반복 😵💫
이 과정은 몇 분이 걸릴 수 있습니다.
Telepresence 사용 시
흐름이 바뀝니다:
- 로컬 코드 수정
- 저장
- 즉시 테스트
⏱️ 초 단위로 변경을 확인할 수 있어, 분이 아닙니다.
작업 흐름
- 클러스터에 연결합니다.
- 프록시(Traffic Manager)를 삽입합니다.
- Service 트래픽을 가로챕니다.
- 로컬 머신으로 전달합니다.
Kubernetes 관점에서
Telepresence 없이:
echo Service → Pod en Kubernetes
Telepresence 사용 시:
echo Service → tu laptop (localhost:9000)
클러스터의 나머지 부분(데이터베이스, 다른 마이크로서비스, secrets 등)은 그대로 유지됩니다.
장점
- 개발 속도가 크게 빨라집니다.
- 실제 인프라에 대한 실시간 디버깅.
- 위험 감소(원격/프로덕션 환경을 건드리지 않음).
- Kubernetes + 마이크로서비스에 최적.
🔗 코드 예시: minikube-telepresence-demo