빠른 시작: VS Code용 Cloud Code를 사용한 Kubernetes 앱 배포

VS Code용 Cloud Code를 사용한 Kubernetes 앱 배포

이 페이지에서는 Cloud Code를 빠르게 시작하는 방법을 설명합니다.

'Hello World' 샘플 애플리케이션을 사용하여 새 Kubernetes 애플리케이션을 설정하고, 클러스터를 만들고, 이 클러스터에서 앱을 실행하고, 실행 중인 코드를 디버깅하고, 라이브 애플리케이션의 로그를 보고, 실행 중인 컨테이너에 터미널을 연결합니다.

M 시리즈 실리콘을 사용하는 Apple 머신을 사용하는 경우 x86 이미지만 지원하는 Cloud Run에 배포하려면 Cloud Build를 사용해야 합니다(요금이 부과될 수 있음). Cloud Code를 사용하면 Cloud Build를 사용하여 x86 이미지를 빌드할 수 있습니다. 자세한 내용은 Apple M 시리즈 실리콘의 Cloud Code 지원을 참조하세요.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. Google Kubernetes Engine API 사용 설정

    API 사용 설정

  5. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  6. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  7. Google Kubernetes Engine API 사용 설정

    API 사용 설정

  8. Git를 설치합니다. 샘플을 머신에 복사하려면 Git이 필요합니다.

Cloud Code 설치

  1. 아직 설치하지 않았다면 머신에 Visual Studio Code를 설치합니다.

  2. 모든 Cloud Platform의 경우 Docker 클라이언트(Docker 레지스트리로 인증됨)를 머신의 PATH에 설치합니다(설치 폴더는 PATH 내의 디렉터리 아래에 표시되어야 함).

    • docker -v를 실행하여 Docker가 이미 설치되어 있는지 확인합니다.
    • Windows Home을 사용하는 경우 Windows Home에 Docker Desktop 설치를 참조하세요.
    • WSL을 사용하지만 데스크톱용 Docker를 설치할 수 없는 경우 Cloud Code로 로컬 개발에 minikube를 사용하세요.

    Cloud Code는 kubectl, Skaffold, gcloud CLI를 자동으로 설치합니다.

  3. 다음 옵션 중 하나를 사용하여 Cloud Code를 설치합니다.

    • VS 코드 열기 및 Cloud Code 설치
    • 머신에서 Visual Studio Code를 엽니다. VS Code의 확장 프로그램확장 프로그램 아이콘(왼쪽 작업 표시줄에 있는 정사각형 아이콘)를 사용하여 Cloud Code 확장 프로그램을 검색하고 설치를 클릭합니다.

    Apple M 시리즈 실리콘에서 VS Code용 Cloud Code를 실행하는 경우 Rosetta 2를 설치하거나 자동 종속 항목을 사용 중지하라는 메시지가 표시됩니다. 이를 위해서는 Rosetta 2가 시스템에서 작동해야 합니다.

    설치가 완료되면 Cloud Code 시작 페이지와 새 애플리케이션을 빠르게 설정할 수 있는 샘플 애플리케이션 모음이 시작 앱 아래에 표시됩니다. 일반적인 Cloud Code 작업과 함께 제공되는 Cloud Code 상태 표시줄을 VS Code 상태 표시줄에서 사용할 수 있습니다.

애플리케이션 만들기

  1. 명령어 팔레트(Cmd/Ctrl+Shift+P 누르기)에서 Cloud Code: New Application을 실행하고 Kubernetes Application을 선택합니다.

  2. 원하는 언어로 Hello World 앱을 선택합니다.

    예를 들어 Node.js: Hello World를 선택하면 시작 Node.js Hello World 앱이 생성됩니다.

  3. 새 애플리케이션을 저장합니다.

    애플리케이션이 생성되었음을 알리는 알림이 표시되며 애플리케이션이 포함된 새 창이 열립니다.

GKE 클러스터 만들기

표준 Google Kubernetes Engine(GKE) 클러스터를 만들기 위해 다음 단계를 수행합니다.

  1. Cloud Code 아이콘 Cloud Code를 클릭하고 클러스터 섹션을 펼칩니다.

  2. + KubeConfig에 클러스터 추가를 클릭하고 Google Kubernetes Engine을 선택합니다.

  3. 컨테이너를 사용 설정하라는 메시지가 표시되면 를 선택합니다.

  4. 클러스터 유형으로 표준을 선택합니다.

  5. 열기를 클릭하여 Cloud Code가 Cloud Console을 열 수 있도록 허용합니다.

  6. Cloud Console에서 만든 프로젝트를 사용하고, 영역을 us-central1-a로 설정하고, 클러스터 이름을 my-first-cluster로 설정합니다.

  7. 만들기를 클릭합니다. 클러스터를 만드는 데 몇 분 정도 걸립니다.

  8. 클러스터가 생성되면 확장된 클러스터 섹션에서 Kubernetes 클러스터 뷰 새로고침 새로고침을 클릭합니다.

  9. 새 클러스터의 이름이 목록에 표시되면 클러스터 이름을 클릭합니다. 새 클러스터가 구성에 추가되고 활성 컨텍스트로 구성됩니다.

앱 실행 및 보기

이제 모든 설정이 완료되었으므로 애플리케이션을 실행하고 라이브로 볼 수 있습니다. Cloud Code가 파일 시스템에서 변경사항을 감시하므로 앱을 거의 실시간으로 수정하고 다시 실행할 수 있습니다.

애플리케이션을 실행하려면 다음 단계를 따르세요.

  1. Cloud Code 상태 표시줄을 클릭하고 Kubernetes에서 실행을 선택합니다.
  2. 현재의 클러스터 컨텍스트를 사용할지 또는 다른 컨텍스트로 전환할지 확인합니다.
  3. 메시지가 표시되면 이미지를 푸시할 이미지 레지스트리를 선택합니다.

    실행 중인 애플리케이션의 진행 상태를 추적할 수 있는 출력 창이 표시됩니다. 터미널 출력에서 실행 중인 포드의 실시간 로그 스트림도 볼 수 있습니다.

  4. 애플리케이션이 Kubernetes에서 실행된 후 출력 창에 IP 주소가 표시됩니다. 이 연결된 IP 주소를 사용하여 애플리케이션에 액세스하려면 Ctrl/Cmd를 누르고 주소를 클릭합니다.

문제해결 도움말

기존 클러스터를 사용하는 경우 클러스터를 활성으로 설정하고 클러스터 사용자 인증 정보를 가져오려면 다음 단계를 따르세요.

  1. Cloud Code 아이콘 Cloud Code를 클릭하고 클러스터 섹션을 펼칩니다.

  2. 클러스터 이름을 마우스 오른쪽 버튼으로 클릭한 후 활성 클러스터로 설정을 클릭합니다.

앱 디버깅

애플리케이션을 디버그하려면 다음 단계를 따르세요.

  1. Cloud Code 상태 표시줄을 클릭하고 Kubernetes에서 디버그를 선택합니다.

  2. 메시지가 표시되면 현재의 클러스터 컨텍스트를 사용할지 또는 선호하는 컨텍스트로 전환할지 확인합니다.

    Cloud Code는 .vscode/launch.json 파일에서 cloudcode.kubernetes 구성을 사용하여 애플리케이션을 실행하고 디버거 세션을 연결합니다.

    Cloud Code는 컨테이너를 빌드하여 레지스트리에 푸시하고, Kubernetes 구성을 클러스터에 적용하고, 라이브 애플리케이션을 탐색하는 데 사용할 수 있는 IP 주소를 반환합니다.

  3. 디버거 세션이 연결되기 전에 디버그하려는 프로그램이 있는 원격 컨테이너의 디렉터리를 확인하거나 입력하라는 메시지가 표시됩니다. 컨테이너 디버깅을 건너뛰려면 ESC를 누릅니다.

  4. #9행에 중단점을 추가하려면 src/app.js를 열고 편집기 여백을 클릭합니다.

    빨간색으로 채워진 원은 활성 중단점을, 회색의 속이 빈 원은 사용 중지된 중단점을 나타냅니다. 중단점을 더 세밀하게 제어하려면 VS Code의 디버그 뷰에서 중단점 섹션을 사용할 수 있습니다.

    중단점을 추가, 삭제, 사용 중지할 수 있는 디버그 뷰 왼쪽 패널의 중단점 섹션

    애플리케이션에 새 요청을 전송하면 디버거가 첫 번째 활성 중단점에서 일시 중지됩니다.

    다음 샘플에서 변수 섹션의 로컬에서 Hello, world!res._contentLength; 값이 13임을 기록합니다.

    중단점 및 변수에서 일시중지된 앱과 범위의 값으로 채워진 호출 스택 섹션

  5. #8행에서 전송되는 문자열을 Hello, goodbye!로 수정한 후 Kubernetes에서 디버그 작업을 다시 시작합니다.

    앱이 다시 빌드되고 다시 배포된 후 업데이트된 res._contentLength의 값을 확인합니다.

    값이 업데이트된 중단점에서 일시중지된 앱

디버깅 세션이 시작되면 개발 세션 창에 구조화된 로깅 뷰가 표시됩니다. 태스크가 시작되면 태스크는 회전하는 반원 아이콘 진행 상태 아이콘으로 표시됩니다.

태스크가 성공하면 단계 옆에 녹색 체크표시 성공 아이콘가 표시됩니다.

단계에 대한 세부정보를 보려면 개발 세션 창에서 단계를 클릭합니다. 출력 창에는 로깅 출력의 단계가 표시됩니다.

컨테이너에서 터미널 열기

컨테이너에서 터미널을 열려면 다음 안내를 따르세요.

  1. Cloud Code 아이콘 Cloud Code를 클릭하고 클러스터 섹션을 펼칩니다.

  2. 다음 섹션을 펼칩니다.

    • 선호하는 클러스터 섹션
    • 네임스페이스 섹션 및 원하는 네임스페이스의 섹션
    • 포드 섹션 및 원하는 포드의 섹션
    • 컨테이너 섹션

    Cloud Code 아이콘

  3. 터미널을 열려는 컨테이너를 마우스 오른쪽 버튼으로 클릭한 후 터미널 가져오기를 클릭합니다.

    그러면 터미널이 시작됩니다. 이제 실행 중인 컨테이너 내에서 셸에 액세스할 수 있습니다!

삭제

애플리케이션을 종료하면 실행 중에 배포된 모든 Kubernetes 리소스가 자동으로 삭제됩니다.

이 빠른 시작에서 사용되는 다른 리소스에 대한 비용이 계정에 청구되지 않도록 하려면 만든 클러스터와 프로젝트를 삭제해야 합니다.

Google Cloud를 사용하고 클러스터만 삭제하려면 다음 단계를 따르세요.

  1. Kubernetes 탐색기에서 클러스터 이름 위로 마우스를 가져간 다음 Cloud Console에서 열기 아이콘 Cloud Console에서 열기를 클릭합니다.
  2. 삭제를 클릭한 다음 삭제를 클릭합니다.

프로젝트 및 클러스터를 포함한 관련 리소스를 삭제하려면 다음 안내를 따르세요.

  1. Cloud Console의 프로젝트 페이지로 이동합니다.

    프로젝트 페이지로 이동

  2. 이 빠른 시작에서 만든 프로젝트를 선택한 후 삭제를 클릭합니다.

  3. 확인할 프로젝트 ID를 입력한 후 종료를 클릭합니다.

    그러면 프로젝트가 종료되고 삭제 일정이 예약됩니다.

다음 단계