telepresence를 사용해 로컬에서 서비스 개발 및 디버깅하기
telepresence를 사용해 로컬에서 서비스 개발 및 디버깅하기 (Developing and debugging services locally using telepresence)
참고: 이 섹션은 쿠버네티스가 요구하는 기능을 제공하는 타사 프로젝트에 연결해요. 쿠버네티스 프로젝트 저자는 알파벳순으로 나열된 이 프로젝트들에 대해 책임이 없어요. 이 목록에 프로젝트를 추가하려면 변경을 제출하기 전에 콘텐츠 가이드를 읽으세요.
쿠버네티스 애플리케이션은 보통 각각 자체 컨테이너에서 실행되는 여러 개의 개별 서비스로 구성돼요. 원격 쿠버네티스 클러스터에서 이러한 서비스를 개발하고 디버깅하는 것은 번거로울 수 있으며, 디버깅 도구를 실행하기 위해 실행 중인 컨테이너에서 셸을 얻어야 해요.
telepresence는 로컬에서 서비스를 개발하고 디버깅하는 과정을 원활하게 해주면서 원격 쿠버네티스 클러스터로 서비스를 프록시하는 도구예요. telepresence를 사용하면 로컬 서비스에 디버거와 IDE 같은 커스텀 도구를 사용할 수 있고, 원격 클러스터에서 실행되는 ConfigMap, secrets, 서비스에 대한 전체 접근을 서비스에 제공해요.
이 문서는 telepresence를 사용해 원격 클러스터에서 실행되는 서비스를 로컬에서 개발하고 디버깅하는 방법을 설명해요.
출처: 문서
본문
시작하기 전에 (Before you begin)
- 쿠버네티스 클러스터가 설치되어 있어야 해요.
kubectl이 클러스터와 통신하도록 구성돼 있어야 해요.- Telepresence가 설치되어 있어야 해요.
로컬 머신을 원격 쿠버네티스 클러스터에 연결하기 (Connecting your local machine to a remote Kubernetes cluster)
telepresence를 설치한 후 telepresence connect를 실행해 데몬을 시작하고 로컬 워크스테이션을 클러스터에 연결해요.
$ telepresence connect
Launching Telepresence Daemon
...
Connected to context default (https://<cluster public IP>)
쿠버네티스 구문으로 서비스를 curl할 수 있어요. 예: curl -ik https://kubernetes.default.
기존 서비스 개발 또는 디버깅하기 (Developing or debugging an existing service)
쿠버네티스에서 애플리케이션을 개발할 때 보통 단일 서비스를 프로그래밍하거나 디버깅해요. 서비스는 테스트와 디버깅을 위해 다른 서비스에 대한 접근이 필요할 수 있어요. 한 가지 옵션은 지속적 배포 파이프라인을 사용하는 것이지만, 가장 빠른 배포 파이프라인조차 프로그램 또는 디버그 주기에 지연을 도입해요.
telepresence intercept $SERVICE_NAME --port $LOCAL_PORT:$REMOTE_PORT 명령을 사용해 원격 서비스 트래픽을 다시 라우팅하기 위한 "intercept"를 만들어요.
여기서:
$SERVICE_NAME은 로컬 서비스의 이름이에요.$LOCAL_PORT는 로컬 워크스테이션에서 서비스가 실행되는 포트예요.$REMOTE_PORT는 서비스가 클러스터에서 수신하는 포트예요.
이 명령을 실행하면 Telepresence가 원격 쿠버네티스 클러스터의 서비스 대신 로컬 서비스로 원격 트래픽을 보내도록 지시해요. 로컬에서 서비스 소스 코드를 편집하고 저장하면, 원격 애플리케이션에 접근할 때 해당 변경 사항이 즉시 적용되는 것을 볼 수 있어요. 또한 디버거 또는 다른 로컬 개발 도구로 로컬 서비스를 실행할 수도 있어요.
Telepresence는 어떻게 동작하나요? (How does Telepresence work?)
Telepresence는 원격 클러스터에서 실행 중인 기존 애플리케이션의 컨테이너 옆에 traffic-agent sidecar를 설치해요. 그런 다음 Pod로 들어오는 모든 트래픽 요청을 캡처하고, 이를 원격 클러스터의 애플리케이션으로 전달하는 대신 모든 트래픽(전역 intercept를 만들 때) 또는 일부 트래픽(개인 intercept를 만들 때)을 로컬 개발 환경으로 라우팅해요.
다음 단계 (What's next)
체험형 튜토리얼에 관심이 있다면 Google Kubernetes Engine에서 Guestbook 애플리케이션을 로컬로 개발하는 튜토리얼을 확인해 보세요. 더 읽으려면 Telepresence 웹사이트를 방문하세요.