자습서: Visual Studio에서 Bridge to Kubernetes를 사용하여 로컬로 실행 및 디버그
메모
Microsoft는 더 이상 Bridge to Kubernetes 프로젝트를 적극적으로 유지 관리하지 않을 계획입니다. 앞으로 몇 개월 동안 프로젝트를 보관 상태로 전환할 것입니다. 그 동안 프로젝트를 계속 사용할 수 있으며 다운로드할 수 있습니다. 이 기간 동안 나중에 사용할 수 있도록 Bridge to Kubernetes와 유사한 혜택을 제공하는 커뮤니티 프로젝트를 탐색하고 추천할 수 있기를 바랍니다. 질문이 있는 경우 GitHub 문제 보드에 문의하세요.
이 자습서에서는 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 포털에서 만들 수 있습니다. Azure 구독이 없는 경우 무료 계정을 만들있습니다.
- kubectl 시스템에 설치된 실행 파일입니다.
- Visual Studio 2019 버전 16.7 이상이 Windows 10 이상에서 실행되거나 Visual Studio 2022 .
- Visual Studio 2019용 Bridge to Kubernetes 확장 또는 Visual Studio 2022용 Bridge to Kubernetes 확장 .
서비스 설정
이 자습서에서는 Bridge to Kubernetes를 사용하여 모든 Kubernetes 클러스터에서 간단한 할 일 샘플 애플리케이션을 사용합니다.
샘플 애플리케이션에는 상호 작용할 프런트 엔드와 영구 스토리지를 제공하는 백 엔드가 있습니다.
Bash 창을 열고 클러스터가 사용 가능하고 준비되어 있는지 확인합니다. 그런 다음 컨텍스트를 해당 클러스터로 설정합니다.
kubectl cluster-info kubectl config use-context <kubernetes-cluster>
샘플 리포지토리를 복제합니다.
git clone https://github.com/hsubramanianaks/b2k-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를 엽니다. 시작 창에서 코드 없이계속을 선택합니다.
> 프로젝트/솔루션열기를 선택한 다음, todo-app\database-api\databaseApi.csproj 프로젝트를 찾아 열기를 선택합니다.
프로젝트에서 다음과 같이 시작 설정에서 Bridge to Kubernetes 선택합니다.
Bridge to Kubernetes옆의 시작 단추를 선택합니다. Bridge to Kubernetes 프로필 만들기 대화 상자에서 다음 값을 입력합니다.
- 클러스터 이름을 선택합니다.
- 네임스페이스에 대해 할 일 앱을 선택하십시오.
- Service를 리디렉션하려면 database-api를 선택합니다.
- 이전에 브라우저를 시작하는 데 사용한 것과 동일한 URL을 선택합니다.
격리된 상태로 실행하려면 라우팅 격리 사용 설정을 선택하세요. 라우팅 격리를 사용하도록 설정하면 클러스터를 사용하는 다른 사용자는 변경 내용의 영향을 받지 않습니다. 격리 모드는 영향을 받는 각 서비스의 복사본으로 요청을 라우팅합니다. 일반적으로 다른 트래픽을 라우팅합니다. 자세한 내용은 Bridge to Kubernetes가 작동하는 방식참조하세요.
저장 및 디버그 선택하여 변경 내용을 저장합니다.
메모
EndpointManager는 호스트 파일에 대한 상승된 권한을 허용하라는 메시지를 표시합니다.
개발 컴퓨터가 클러스터에 연결됩니다. 상태 표시줄에
database-api
서비스에 연결되어 있음을 보여 줍니다.작업을 입력하고 완료로 표시해 보세요.
디버그>디버깅 중지 선택하여 디버깅을 중지합니다. 이 작업에 대한 바로 가기는 Shift+F5 또는 도구 모음에서 디버깅 중지 버튼을 사용하는 것입니다.
Bridge to Kubernetes는 database-api 서비스에 대한 모든 트래픽을 리디렉션합니다. 개발 컴퓨터에 있는 애플리케이션 버전으로 리디렉션됩니다. Bridge to Kubernetes는 애플리케이션의 모든 아웃바운드 트래픽을 Kubernetes 클러스터로 다시 라우팅합니다.
메모
기본적으로 디버깅 작업을 중지하면 Kubernetes 클러스터에서 개발 컴퓨터의 연결이 끊어집니다. 이 동작을 변경하려면 도구>옵션선택한 다음, Kubernetes 디버깅 도구 선택합니다. 디버깅 후 연결 끊기를 False, 즉 거짓으로 설정합니다.
이 설정을 업데이트한 후에는 디버깅을 중지하고 시작할 때 개발 컴퓨터가 연결된 상태로 유지됩니다. 클러스터에서 개발 컴퓨터의 연결을 끊려면 도구 모음의 연결 끊기 단추를 클릭합니다.
중단점 설정
이 섹션에서는 서비스에서 중단점을 설정합니다.
솔루션 탐색기MongoHelper.cs 선택하여 편집기에서 파일을 엽니다. 솔루션 탐색기가 표시되지 않으면 보기>솔루션 탐색기선택합니다.
CreateTask 메서드 본문의 첫 번째 줄에 커서를 설정합니다. 그런 다음 디버그>토글 중단점을 선택하여 중단점을 설정합니다.
이 작업의 바로 가기는 F9입니다.
이전 섹션에서와 같이 Bridge to Kubernetes옆의 시작 단추를 선택합니다. 디버깅은 이전에 입력한 값으로 시작합니다.
열리는 브라우저에서 할 일에 값을 입력하고 Enter를 선택합니다. 코드가 입력한 중단점에 도달합니다. 실제 디버깅 작업을 수행하는 동안 디버깅 옵션을 사용하여 코드를 단계별로 실행할 수 있습니다.
디버그>디버깅 중지 선택하여 디버깅을 중지합니다.
중단점을 제거하려면 해당 줄을 선택한 다음 디버그>중단점 설정/해제를 선택하거나 F9 선택합니다.
시작 프로필 편집
Bridge to Kubernetes가 클러스터에 연결하는 방법을 변경해야 하는 경우 이 섹션에서 시작 프로필 설정을 편집합니다.
Visual Studio 명령 모음에서 시작 단추(녹색 삼각형 또는 "재생" 아이콘) 옆의 화살표를 클릭하여 드롭다운을 연 다음 databaseApi 디버그 속성클릭합니다.
Bridge to Kubernetes 프로필 편집 링크를 시작 프로필 대화 상자에서 클릭합니다. 편집할 수 있는 링크가 있는 프로필 시작 대화 상자를 보여줍니다.
이 화면으로 이동하는 또 다른 방법은 다음과 같습니다.
솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 속성 선택하거나 alt +Enter누릅니다.
아래로 스크롤하여 디버그에서 디버그 시작 프로필 UI 열기을 선택합니다.
리소스 정리
이 자습서에서 샘플 투두 앱을 사용한 경우, Azure 포털을 통해 클러스터에서 제거할 수 있습니다. 해당 리포지토리를 로컬로 복제한 경우 수동으로 삭제할 수 있습니다.
다음 단계
Bridge to Kubernetes 작동 방식 Bridge to Kubernetes에 대해 자세히 알아보세요.
Visual Studio Code를 사용하여 개발 컴퓨터를 클러스터에 연결하는 방법을 알아보려면 다음 문서를 확인하세요.