자습서: Visual Studio에서 Bridge to Kubernetes를 사용하여 로컬로 실행 및 디버그
이 자습서에서는 Kubernetes 클러스터와 개발 컴퓨터 간에 트래픽을 리디렉션하는 방법을 알아봅니다. 이 자습서에서는 서비스를 디버그하기 위해 Bridge to Kubernetes 및 Visual Studio를 사용합니다. Visual Studio Code를 사용하려면 VS Code에서 Bridge to Kubernetes를 사용하여 로컬로 실행 및 디버그를 참조하세요.
Bridge to Kubernetes에 관한 자세한 내용은 Bridge to Kubernetes 작동 방식을 참조하세요.
이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.
- Bridge to Kubernetes를 사용하여 클러스터에 연결
- 개발을 위해 로컬로 실행 중인 서비스로 요청을 라우팅합니다.
- 로컬 컴퓨터에서 실행 중인 서비스를 디버그합니다.
필수 조건
- Kubernetes 클러스터 Azure Portal에서 만들 수 있습니다. Azure 구독이 없는 경우 계정을 무료로 만들 수 있습니다.
- 시스템에 설치된 kubectl 실행 파일.
- Windows 10 이상에서 실행되는 Visual Studio 2019 버전 16.7 이상 또는 Visual Studio 2022.
- Visual Studio 2019용 Bridge to Kubernetes 확장 또는 Visual Studio 2022용 Bridge to Kubernetes 확장.
- 이 TODO 앱 샘플 애플리케이션과 같이 문제를 해결하기 위한 애플리케이션.
서비스 설정
이 자습서에서는 Bridge to Kubernetes를 사용하여 Kubernetes 클러스터에서 간단한 todo 샘플 애플리케이션 작업을 합니다.
샘플 애플리케이션에는 상호 작용할 프런트 엔드와 영구 스토리지를 제공하는 백 엔드가 있습니다.
Bash 창을 열고 클러스터가 사용 가능하고 준비되어 있는지 확인합니다. 그런 다음, 컨텍스트를 해당 클러스터로 설정합니다.
kubectl cluster-info kubectl config use-context <kubernetes-cluster>
샘플 리포지토리를 복제합니다.
git clone https://github.com/Azure/Bridge-To-Kubernetes
디렉터리를 samples/todo-app으로 변경한 다음, 샘플에 대한 네임스페이스를 만듭니다.
kubectl create namespace todo-app
배포 매니페스트를 적용합니다.
kubectl apply -n todo-app -f deployment.yaml
이 간단한 배포는
LoadBalancer
유형의 서비스를 사용하여 프런트 엔드를 노출합니다. 모든 Pod가 실행 중이고frontend
서비스의 외부 IP를 사용할 수 있을 때까지 기다립니다.MiniKube를 사용하여 테스트하는 경우에는
minikube tunnel
을 사용하여 외부 IP를 확인합니다. AKS 또는 다른 클라우드 기반 Kubernetes 공급자를 사용하는 경우에는 외부 IP가 자동으로 할당됩니다.다음 명령을 사용하여
frontend
서비스를 모니터링하여 서비스가 실행될 때까지 기다립니다.kubectl get service -n todo-app frontend --watch NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE frontend LoadBalancer 10.0.245.78 10.73.226.228 80:31910/TCP 6m26s
클러스터에 커넥트
Visual Studio를 엽니다. 시작 창에서 코드를 사용하지 않고 계속을 선택합니다.
열기>프로젝트/솔루션을 선택한 다음, samples\todo-app\database-api\databaseApi.csproj 프로젝트를 찾고, 열기를 선택합니다.
아래 그림과 같이 프로젝트의 시작 설정에서 Bridge to Kubernetes를 선택합니다.
Bridge to Kubernetes 옆에 있는 시작 단추를 선택합니다. Bridge to Kubernetes용 프로필 만들기 대화 상자에서 다음 값을 입력합니다.
- 클러스터 이름을 선택합니다.
- 네임스페이스로 todo-app을 선택합니다.
- 리디렉션할 서비스로 database-api를 선택합니다.
- 이전에 브라우저를 시작하는 데 사용한 것과 동일한 URL을 선택합니다.
격리된 상태로 실행하려면 라우팅 격리 사용을 선택합니다. 라우팅 격리를 사용하도록 설정하면 클러스터를 사용하는 다른 사용자는 변경 내용의 영향을 받지 않습니다. 격리 모드는 각 영향을 받는 서비스의 복사본으로 요청을 라우팅합니다. 다른 트래픽은 정상적으로 라우팅합니다. 자세한 내용은 Bridge to Kubernetes 작동 방식을 참조하세요.
저장 및 디버그를 선택하여 변경 내용을 저장합니다.
참고 항목
EndpointManager는 hosts 파일에 대한 상승된 권한을 허용할지 묻는 메시지를 표시합니다.
개발 컴퓨터가 클러스터에 연결됩니다. 상태 표시줄에
database-api
서비스에 연결되어 있다고 표시됩니다.작업을 입력하고 완료로 표시해 봅니다.
디버그>디버깅 중지를 선택하여 디버깅을 중지합니다. 이 작업의 바로 가기는 Shift+F5이거나 도구 모음에서 디버깅 중지 단추를 사용합니다.
Bridge to Kubernetes는 database-api 서비스에 대한 모든 트래픽을 리디렉션합니다. 개발 컴퓨터에서는 애플리케이션 버전으로 리디렉션됩니다. 또한 Bridge to Kubernetes는 애플리케이션의 모든 아웃바운드 트래픽을 Kubernetes 클러스터로 다시 라우팅합니다.
참고 항목
기본적으로 디버깅 작업을 중지하면 Kubernetes 클러스터에서 개발 컴퓨터의 연결이 끊어집니다. 이 동작을 변경하려면 도구>옵션을 선택한 다음, Kubernetes 디버깅 도구를 선택합니다. 디버깅 후 연결 끊기를 False로 설정합니다.
이 설정을 업데이트하면 디버깅을 중지하고 시작할 때 개발 컴퓨터가 연결된 상태를 유지합니다. 클러스터에서 개발 컴퓨터의 연결을 끊으려면 도구 모음에서 연결 끊기 단추를 클릭합니다.
중단점 설정
이 섹션에서는 서비스에 중단점을 설정합니다.
솔루션 탐색기에서 MongoHelper.cs를 선택하여 편집기에서 파일을 엽니다. 솔루션 탐색기가 표시되지 않으면 보기>솔루션 탐색기를 선택합니다.
CreateTask 메서드 본문의 첫 번째 줄에 커서를 설정합니다. 그런 다음, 디버그>중단점 설정/해제를 선택하여 중단점을 설정합니다.
이 작업의 바로 가기는 F9 키입니다.
이전 섹션에서와 같이 Bridge to Kubernetes 옆에 있는 시작 단추를 선택합니다. 디버깅은 이전에 입력한 값으로 시작합니다.
열리는 브라우저에서 todo에 값을 입력하고 Enter 키를 선택합니다. 코드가 입력한 중단점에 도달합니다. 실제 디버깅 작업을 수행하는 동안 디버깅 옵션을 사용하여 코드를 단계별로 실행할 수 있습니다.
디버그>디버깅 중지를 선택하여 디버깅을 중지합니다.
중단점을 제거하려면 해당 줄을 선택한 다음, 디버그>중단점 설정/해제를 선택하거나 F9 키를 선택합니다.
시작 프로필 편집
Bridge to Kubernetes가 클러스터에 연결하는 방법을 변경해야 하는 경우 이 섹션에서 시작 프로필 설정을 편집합니다.
Bridge to Kubernetes 단추 옆의 화살표를 클릭한 다음 databaseApi 디버그 속성을 클릭합니다.
시작 프로필 대화 상자에서 Bridge to Kubernetes 프로빌 편집 링크를 클릭합니다.
리소스 정리
이 자습서에 샘플 todo 앱을 사용한 경우 Azure Portal을 사용하여 클러스터에서 제거할 수 있습니다. 해당 리포지토리를 로컬로 복제한 경우 수동으로 삭제할 수 있습니다.
다음 단계
Bridge to Kubernetes 작동 방식에서 Bridge to Kubernetes에 대해 자세히 알아보세요.
지원되는 기능과 Bridge to Kubernetes의 로드맵에 대한 내용은 Bridge to Kubernetes 로드맵을 참조하세요.
Visual Studio Code를 사용하여 개발 컴퓨터를 클러스터에 연결하는 방법을 알아보려면 다음 문서를 확인하세요.