애플리케이션 실행 및 개발

이제 모든 설정이 완료되었으므로 애플리케이션을 일반 실행하거나 IDE에서 개발 반복 주기를 시작하여 소스 및 종속 항목의 변경사항을 라이브 애플리케이션에 전파할 수 있습니다. 이 페이지에서는 방명록 샘플 앱을 사용하여 Kubernetes 환경에서의 실행 및 개발을 설명합니다.

실행 작업 선택

실행하기 전

애플리케이션을 실행하기 전 원하는 Kubernetes 컨텍스트에 앱을 배포하도록 설정되었는지 확인합니다. 이것은 실행 탭의 Kubernetes 구성에서 실행 및 배포 환경설정 섹션에서 지정될 수 있습니다.

현재 컨텍스트를 전환하려면 오른쪽 사이드바 패널에서 또는 도구 > Cloud Code > Kubernetes > 클러스터 탐색기 보기를 사용하여 Kubernetes 탐색기로 전환할 수 있습니다.

이미지를 다시 빌드할 필요 없이 특정 유형의 파일 변경사항을 빠르게 선택하여 개발 루프를 최적화하려면 파일 동기화 및 핫 리로드(Hot reloading)를 사용 설정하면 됩니다.

Kubernetes에서 실행

Kubernetes에서 실행은 실행 대상은 프로젝트의 일반 실행을 수행하며, 여기서 프로젝트 소스 및 종속 항목은 감시되지 않고 이미지와 배포가 완료된 후 Skaffold 프로세스가 완료됩니다.

이미지를 빌드하고 프로젝트를 Kubernetes 클러스터에 배포하려면 다음 안내를 따르세요.

  1. Run on Kubernetes 실행 작업 아이콘를 클릭한 다음 구성 수정을 클릭합니다.
  2. 사용 가능한 구성 옵션을 사용하여 배포를 맞춤설정합니다.
  3. Apple M 시리즈 실리콘에서 개발하고 Google Kubernetes Engine에 배포하는 경우 x86 아키텍처에서 실행할 수 있는 이미지를 빌드해야 합니다. Cloud Build를 사용하여 x86 이미지를 빌드하려면 빌드/배포 탭을 클릭한 후 cloudbuild배포 프로필로 선택합니다. Cloud Build를 사용하여 애플리케이션을 빌드하는 비용에 대한 자세한 내용은 Cloud Build 가격 책정을 참조하세요.
  4. 구성에 만족하면 확인을 클릭한 후 Kubernetes에서 실행을 클릭합니다.

실행 작업을 사용한 일반 배포

Kubernetes에서 지속적 개발

Develop on Kubernetes 실행 대상은 Kubernetes 클러스터에서 개발 주기를 시작합니다. 개발 주기를 시작하면 Cloud Code에서 Skaffold를 사용하여 프로젝트 이미지를 빌드한 다음 태그를 지정하고 구성된 저장소에 푸시한 후 kubectl을 사용하여 프로젝트 Kubernetes 매니페스트를 배포합니다.

  1. Develop on Kubernetes 실행 작업 아이콘을 클릭한 다음 구성 수정을 클릭합니다.
  2. 사용 가능한 구성 옵션을 사용하여 배포를 맞춤설정합니다.
  3. Apple M 시리즈 실리콘에서 개발하고 Google Kubernetes Engine에 배포하는 경우 x86 아키텍처에서 실행할 수 있는 이미지를 빌드해야 합니다. Cloud Build를 사용하여 x86 이미지를 빌드하려면 빌드/배포 탭을 클릭한 후 cloudbuild배포 프로필로 선택합니다. Cloud Build를 사용하여 애플리케이션을 빌드하는 비용에 대한 자세한 내용은 Cloud Build 가격 책정을 참조하세요.
  4. 구성에 만족하면 확인을 클릭한 후 Kubernetes에서 실행을 클릭합니다.

Kubernetes 클러스터 개발 주기 시작

배포된 앱 미리보기

  1. 원하는 실행 작업에서 실행 버튼을 클릭합니다. 그런 후 로그 탭 아래의 출력 창에서 수신되는 애플리케이션 로그를 볼 수 있습니다.

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

  2. 배포가 성공하면 새로운 서비스 URL을 사용할 수 있다는 알림이 표시됩니다. 서비스 URL 탭을 클릭하여 URL을 확인한 후 URL 링크를 클릭하여 실행 중인 애플리케이션으로 브라우저를 엽니다.

    서비스 URL 탭에서 포트 전달 서비스 보기

    또는 이벤트 로그를 연 후 링크를 클릭하여 실행 중인 애플리케이션으로 브라우저를 열 수 있습니다.

로그 보기

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

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

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

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

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

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

    Kubernetes 탐색기 콘솔에 로그가 표시됩니다.

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

Kubernetes에서 개발할 때 새 기능 추가

'Kubernetes에서 개발'로 개발 반복 주기를 시작하고 프로젝트에 기능을 더 추가한 경우 프로젝트에 더 많은 기능을 추가한 경우 배포를 중단 및 삭제하거나 이미지를 수동으로 빌드 및 태그 지정하거나 클러스터를 업데이트하지 않아도 Kubernetes 클러스터에 이러한 변경사항이 어떻게 배포되는지 확인할 수 있습니다.

방명록 앱을 사용하는 경우 다음을 수행합니다.

  1. src/main/java/cloudcode/guestbook/frontend에서 'FrontendController.java' 파일을 열고 이 새 엔드포인트를 FrontendController 클래스에 추가합니다.

     @RequestMapping("/greeting")
     @ResponseBody
     public String greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return String.format("Hello from Kubernetes with IntelliJ, %s!", name);
     }
     ```
    
  2. 새 주석 RequestMappingResponseBody에 대한 필요한 가져오기를 포함합니다.

  3. 변경사항을 저장하거나(Ctrl/Cmd+S) 프로젝트를 빌드합니다(빌드 > 프로젝트 빌드 메뉴 사용).

    콘솔 창에서 진행 상황 및 배포 로그를 확인할 수 있습니다. 변경사항이 전파되면 새 엔드포인트 URL localhost:8080/greeting을 방문하여 업데이트를 확인합니다.

    브라우저에서 새로 만들어진 엔드포인트 보기

  4. 지속적 개발 세션을 종료하려면 중지 버튼을 클릭합니다.

    이 플러그인은 개발 세션에 사용된 모든 Kubernetes 리소스를 삭제합니다.

보안 비밀 저장

코드에 API 키, 비밀번호, 인증서와 같이 민감할 수 있는 데이터가 포함된 경우 이를 보안 비밀로 저장하는 것이 좋습니다. Cloud Code를 사용하면 이러한 보안 비밀을 Secret Manager에 안전하게 저장하고 필요할 때 프로그래매틱 방식으로 가져올 수 있습니다. Cloud Code를 사용하여 보안 비밀을 만들고 관리하는 방법에 대한 자세한 내용은 Secret Manager 가이드를 참조하세요.

리소스 세부정보 보기

오른쪽 측면 패널에서 액세스할 수 있는 Kubernetes 탐색기를 사용하여 Kubernetes 리소스의 상태를 추적할 수 있습니다. 또는 도구 > Cloud Code > Kubernetes > 클러스터 탐색기 보기를 사용하여 Kubernetes 탐색기에 액세스할 수 있습니다.

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

Kubernetes 탐색기를 사용하면 클러스터, 노드, 워크로드 등에 액세스하고, 활성 컨텍스트, 로그 스트리밍 및 보기를 설정하며, 리소스 설명을 조회할 수 있습니다.

Kubernetes 탐색기에서 리소스 라벨을 마우스 오른쪽 버튼으로 클릭한 후 설명을 클릭하여 배포된 리소스의 세부정보를 표시할 수 있습니다.

Kubernetes 탐색기 패널 안에서 적절한 리소스를 마우스 오른쪽 버튼으로 클릭하고 설명을 선택하면 사용할 수 있는 설명 옵션

구성

Run on KubernetesDevelop on Kubernetes 실행 구성을 사용하면 사용 가능한 설정을 구성하여 배포를 맞춤설정할 수 있습니다. 드롭다운에서 실행 구성을 선택한 다음 구성 수정을 선택하여 구성 옵션에 액세스합니다.

Skaffold 옵션

  • Skaffold 구성 - skaffold.yaml 구성 파일을 선택합니다. 프로젝트에 'skaffold.yaml' 파일이 있으면 자동으로 감지됩니다.
  • 배포 프로필 - skaffold.yaml 파일에 구성된 사용 가능한 옵션에서 프로필을 선택합니다.
  • 환경 변수 - Skaffold 배포 프로세스에 전달할 추가 환경 변수를 구성할 수 있습니다. Skaffold 플래그를 이 필드에서 사용할 환경 변수로 구성할 수도 있습니다. 사용 가능한 Skaffold 환경 변수의 전체 목록은 Skaffold CLI 참조 문서를 확인하세요.
  • 세부정보 수준 - trace, debug, info, warn, error 또는 fatal으로 출력 세부정보 수준을 설정할 수 있습니다. 기본 세부정보 수준은 warn입니다.

Kubernetes 옵션

  • 배포 컨텍스트 - 애플리케이션이 배포된 Kubernetes 컨텍스트를 나타냅니다. 배포 컨텍스트가 지정되지 않은 경우의 기본 동작은 현재 시스템 컨텍스트(있는 경우)에 배포하는 것입니다.

    현재 컨텍스트에 배포하지 않으려면 실행/디버그 설정의 배포 섹션에서 다음을 선택합니다.

    • Minikube 클러스터에 로컬로 배포 - 앱을 실행하기 위해 Cloud Code 관리형 Minikube 클러스터를 시작하고 배포가 중지된 후 클러스터를 중지합니다. Minikube 클러스터가 이미 실행 중인 경우 Cloud Code는 기존 Minkube 클러스터를 사용하여 배포합니다.
    • 컨텍스트 전환 및 배포 - 배포 시 시스템의 현재 컨텍스트를 지정된 컨텍스트로 변경합니다.

      Cloud Code Kubernetes 구성에서 Kubernetes 배포 컨텍스트 선택

  • 완료 시 배포 삭제 - 배포가 종료되면 Kubernetes 배포가 삭제됩니다. 기본 동작입니다. 또는 배포가 삭제되지 않도록 이 설정을 전환할 수 있습니다.

컨테이너 이미지 스토리지 옵션

자세한 내용은 컨테이너 이미지 저장 가이드를 참조하세요.

빌드 설정

Cloud Code는 Docker, Jib, Buildpacks 아티팩트 유형을 지원합니다. 원하는 빌더 및 관련 설정을 설정하는 방법에 대한 자세한 내용은 컨테이너 이미지 빌드 환경설정 구성 가이드를 참조하세요.

지원 받기

IntelliJ IDE에서 의견을 제출하거나 문제를 신고하려면 Tools(도구) > Cloud Code > Help / About(도움말 / 정보) > Submit feedback or report an issue(의견 제출 또는 문제 신고)로 이동하여 GitHub에 문제를 신고하거나 Stack Overflow에서 질문합니다.

Google Cloud Slack 커뮤니티에 속한 #cloud-code 채널에도 가입할 수 있습니다.