빠른 시작: Cloud Code로 Kubernetes 앱 실행

이 페이지에서는 Cloud Code를 시작하는 방법을 보여줍니다.

이 빠른 시작에서는 시작 'Hello World' 템플릿을 사용하여 새 Kubernetes 애플리케이션 설정, 클러스터 만들기, 클러스터에서 앱 실행, 앱을 반복적으로 개발할 수 있도록 꾸준히 재빌드 촉진, 실행 중인 코드 디버깅을 수행하고, 라이브 애플리케이션에서 로그 스트리밍을 쉽게 확인할 수 있습니다.

Cloud Code로 새로운 Hello World 앱 만들기

시작하기 전에

Google Cloud를 사용하려면 Google Cloud 프로젝트를 만들고 결제를 사용 설정해야 합니다.

또는 다른 Cloud Platform에서 호스팅되는 클러스터 또는 로컬 Kubernetes 클러스터를 MinikubeDocker Desktop과 같은 도구와 함께 사용할 수 있습니다.

플러그인 설치

Cloud Code 플러그인을 설치하는 방법은 다음과 같습니다.

  1. 아직 설치하지 않았다면 JetBrains IDE 버전 2019.3 이상(예: IntelliJ Ultimate/Community, PyCharm Professional/Community, WebStorm, GoLand)을 설치합니다.
  2. 모든 Cloud Platform의 경우 Docker 클라이언트(Docker 레지스트리로 인증됨)가 머신의 PATH에 설치되어 있는지 확인합니다(해당 폴더는 PATH 내의 디렉터리 아래에 표시되어야 함). docker -v를 실행하여 Docker가 이미 설치되어 있는지 확인합니다.

    Cloud Code는 필요한 다른 종속 항목을 자동으로 설치합니다.

  3. IntelliJ IDEA 또는 기타 지원되는 JetBrains IDE를 엽니다.

  4. 플러그인 마켓플레이스(File(파일) > Settings(설정) > Plugins(플러그인) 또는 Mac OS X의 경우 IntelliJ IDEA > Preferences(환경설정) > Plugins(플러그인))에서 'Cloud Code' 플러그인을 검색하고 설치합니다.

    IDE를 다시 시작하여 플러그인을 활성화하라는 메시지가 표시될 수 있습니다.

클러스터 만들기

애플리케이션을 만들기 전에 Minikube에서 로컬로 호스팅되거나 Google Kubernetes Engine 클러스터와 같은 Cloud Platform을 사용하는 연결된 Kubernetes 클러스터가 필요합니다. 빠른 시작에 사용할 클러스터가 없으면 새로 만듭니다.

Google Cloud를 사용하도록 선택하면 다음 단계에 따라 GKE 클러스터를 만들 수 있습니다.

  1. 터미널 또는 Cloud Console을 사용하여 GKE에 새 클러스터를 만듭니다.

    • IDE에서 하단의 작업 표시줄을 통해 액세스할 수 있는 터미널을 사용하여 클러스터를 만들려면 다음을 실행합니다.

       gcloud container clusters create [CLUSTER_NAME] --zone [COMPUTE_ZONE]
      
    • Cloud Console을 사용하여 클러스터를 만들려면 Google Kubernetes Engine 메뉴로 이동하여 Create cluster(클러스터 만들기)를 클릭합니다.

      Google Kubernetes Engine 메뉴로 이동

      필드 맞춤설정에 대한 자세한 내용은 GKE 가이드를 참조하세요.

  2. 클러스터를 만든 후 로컬 kubeconfig 파일에 추가해야 합니다. 이 작업을 수행하려면 다음을 실행합니다.

     gcloud container clusters get-credentials [CLUSTER_NAME]
    

    이렇게 하면 지정된 클러스터가 활성 컨텍스트로 설정됩니다.

애플리케이션 만들기

기존 샘플을 사용하여 새 애플리케이션을 만들려면 다음 단계를 따릅니다.

  1. IDE에서 File(파일) > New Project(새 프로젝트)를 열고 Cloud Code: Kubernetes를 선택합니다.
  2. 시작 애플리케이션 목록에서 'Hello World' 템플릿을 선택합니다. 사용 가능한 템플릿 목록: Python, Go, NodeJS, 자바 hello world, 방명록 애플리케이션
  3. IntelliJ IDEA를 사용하는 경우 컨테이너 이미지가 저장되는 위치를 지정하라는 메시지가 표시됩니다.

    gcr.io/{gcp-project-name} 또는 docker.io/{account} 형식을 사용하여 필드에서 기본 이미지 저장소를 지정합니다.

    선택한 컨테이너 레지스트리에 따라 적절한 형식을 선택합니다.

    • GKE를 사용하는 경우 Google Container Repository에 이미지를 저장할 수 있습니다.

      또한 이 필드에는 자동 완성 기능이 제공되어 선호하는 Google Cloud 프로젝트 및 현재 활성 클러스터와 연결된 이미지를 쉽게 찾을 수 있습니다. 이때 다음 형식을 사용합니다.

      gcr.io/{project-name} 여기서 {project-name}은 클러스터를 포함하는 GCP 프로젝트의 이름입니다.

    • Docker Hub에 이미지를 저장하기로 선택하는 경우(비공개 Docker Hub 저장소를 사용하는 경우 적절히 인증해야 합니다) 다음 형식을 사용하세요.

      docker.io/{account} 여기서 {account}는 Docker Hub 계정의 이름입니다.

    • Minikube 또는 Docker Desktop과 같은 로컬 클러스터에서 실행 중인 경우 이 단계를 건너뛰고 'Next(다음)'를 클릭합니다.

  4. 프로젝트 이름을 선택합니다.

    Finish(마침)를 클릭하면 Cloud Code에서 선택한 템플릿을 클론하고 새로 만든 프로젝트를 사용합니다.

    • 자바 템플릿의 경우 pom.xml을 동기화하려면 Maven 프로젝트를 가져오라는 메시지가 표시됩니다. 'Add as Maven project(Maven 프로젝트로 추가)'를 클릭합니다.

      비관리형 pom.xml 알림

      또한 'Import Changes(변경사항 가져오기)'를 클릭하여 필요한 Maven 프로젝트를 가져옵니다.

      Maven 변경사항 가져오기 알림

애플리케이션 개발

Kubernetes에서 애플리케이션 개발을 시작하려면 다음 안내를 따릅니다.

  1. Cloud Platform에서 호스팅된 클러스터에서 실행 중인 경우 Develop on Kubernetes를 위한 컨테이너 이미지가 저장되는 위치를 정의했는지 확인합니다.
  2. 상단 작업 표시줄의 실행/디버그 구성 대화상자에서 Kubernetes에서 개발 실행 대상을 선택합니다.

    이렇게 하면 모든 코드 변경사항이 자동으로 새 버전의 애플리케이션에 빌드, 푸시, 배포됩니다.

    Kubernetes 배포 실행 구성

    'Develop on Kubernetes' 실행 작업 아이콘에 대한 실행 작업을 클릭하여 Kubernetes 클러스터에서 개발 주기를 시작합니다.

  3. 출력 창에서 수신 애플리케이션 로그를 봅니다.

    배포가 시작되면 배포된 애플리케이션에 전달된 포트 목록이 표시됩니다.

    Kubernetes 애플리케이션에서 스트리밍 로그 보기

  4. 배포가 성공하면 이제 로컬 URL을 통해 서비스에 액세스할 수 있다는 알림이 나타납니다. '보기'를 클릭하여 이벤트 로그를 엽니다.

    이제 이벤트 로그에서 실제 앱에 액세스할 수 있는 URL을 볼 수 있다는 알림

    이벤트 로그에서 링크를 클릭하여 실행 중인 애플리케이션으로 브라우저를 엽니다.

    이벤트 로그를 사용하여 포트 전달 서비스 찾기

애플리케이션 디버깅

애플리케이션을 디버깅하는 방법은 다음과 같습니다.

  1. Cloud Platform에서 호스팅된 클러스터에서 실행 중인 경우 Develop on Kubernetes를 위한 컨테이너 이미지가 저장되는 위치를 정의했는지 확인합니다.
  2. Develop on Kubernetes를 위한 디버그 작업 실행 작업 아이콘을 클릭하여 Kubernetes 클러스터의 디버그 모드에서 개발 주기를 시작합니다.

    디버그 모드에서 Kubernetes 클러스터 개발 주기 시작

  3. Cloud Code에서 디버그 세션을 연결합니다. 성공하면 디버그 도구 창이 열리고 콘솔 탭에서 연결을 확인합니다.

    이제 라이브 Kubernetes 클러스터를 디버깅할 수 있습니다.

  4. 중단점을 추가하려는 코드의 실행줄에서 여백을 클릭합니다.

    붉은색으로 채워진 원은 활성 중단점을 나타내며 윤곽선이 붉고 가운데가 빈 원은 사용하지 않는 중단점을 나타냅니다.

  5. 애플리케이션에 새 요청을 보내면 원하는 행에서 일시중지됩니다.

    Kubernetes 디버거 세션

  6. 디버깅 세션을 종료하려면 Develop on Kubernetes 실행 구성의 중지 아이콘을 클릭합니다.

애플리케이션 실행

Kubernetes에서 애플리케이션을 실행하려면 다음 안내를 따릅니다.

  1. Develop on Kubernetes를 위한 컨테이너 이미지가 저장되는 위치를 정의했는지 확인합니다.
  2. 이제 애플리케이션을 배포할 준비가 되었으므로 상단 작업 표시줄의 실행/디버그 구성 대화상자에서 Develop on Kubernetes를 선택하여 애플리케이션을 배포합니다.

    Kubernetes 배포 실행 구성

  3. 'Kubernetes에서 실행' 실행 작업 아이콘을 클릭합니다.

  4. Kubernetes에서 개발하는 것처럼 출력 창에서 수신되는 애플리케이션 로그를 볼 수 있습니다.

  5. 배포가 성공하면 이제 로컬 URL을 통해 서비스에 액세스할 수 있다는 알림이 나타납니다. '보기'를 클릭하여 이벤트 로그를 엽니다.

    이벤트 로그에서 애플리케이션이 제공되는 포트를 찾습니다. 링크를 클릭하여 실행 중인 애플리케이션으로 브라우저를 엽니다.

  6. 새로 배포된 애플리케이션에 액세스하려면 http://localhost:{port-number}를 방문합니다.

    'Hello World!'를 표시하는 http://localhost:{port-number}의 애플리케이션

로그 보기

애플리케이션을 개발하고 실행하는 동안 터미널 출력 내에서 실행 중인 pod의 실시간 로그 스트림을 볼 수 있지만 Kubernetes 탐색기로 이동하여 특정 pod의 로그를 볼 수도 있습니다.

특정 포드의 로그를 보려면 다음 단계를 따릅니다.

  1. Kubernetes 탐색기로 이동합니다. 오른쪽 측면 패널에서 또는 Tools(도구) > Cloud Code > Kubernetes > View Cluster Explorer(클러스터 탐색기 보기)를 사용해 액세스할 수 있습니다.

    오른쪽 작업 표시줄의 탭에서 Kubernetes 탐색기 패널이 열립니다.

  2. 로그를 보려는 pod를 선택합니다.

  3. pod를 마우스 오른쪽 버튼으로 클릭하고 Stream Logs(스트림 로그)를 선택합니다. 또는 pod에서 실행되는 개별 컨테이너의 로그를 스트리밍할 수 있습니다.

    이렇게 하면 Kubernetes 탐색기 콘솔에 로그가 출력됩니다.

    마우스 오른쪽 버튼 클릭 메뉴를 사용하여 pod에서 로그를 스트리밍하여 Kubernetes 탐색기 콘솔에 로그 출력

삭제

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

Google Cloud를 사용 중이며 프로젝트 및 GKE 클러스터를 포함한 관련 리소스를 삭제하려는 경우는 다음을 따릅니다.

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

    프로젝트 페이지로 이동

  • 이 빠른 시작에서 만든 프로젝트를 선택하고 옆의 휴지통 아이콘을 클릭하여 삭제합니다.

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

다음 단계

지원 받기

의견을 보내려면 GitHub에서 문제를 신고하거나 Stack Overflow에서 질문하세요.