애플리케이션 실행 및 개발

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

실행 작업 선택

Kubernetes에서 실행

애플리케이션을 정기적으로 실행하는 경우 Kubernetes 실행 대상('Kubernetes에서 실행' 실행 작업 아이콘)을 사용하여 이미지를 빌드하고 프로젝트를 Kubernetes 클러스터에 배포할 수 있습니다. 프로젝트 소스와 종속 항목은 감시되지 않으며, 이미지와 배포가 완료되면 Skaffold 프로세스가 완료됩니다.

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

배포 맞춤설정에 대한 자세한 내용은 사용 가능한 구성 옵션을 참조하세요.

Kubernetes에서 지속적 개발

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

Kubernetes 클러스터 개발 주기 시작

배포 맞춤설정에 대한 자세한 내용은 사용 가능한 구성 옵션을 참조하세요.

배포된 앱 미리보기

  1. 원하는 실행 작업에서 실행 버튼을 클릭하면 출력 창에서 수신 애플리케이션 로그를 볼 수 있습니다.

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

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

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

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

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

  3. 새로 배포한 애플리케이션을 확인합니다.

    localhost:8080에서 방명록 앱 실행

로그 보기

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

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

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

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

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

  3. pod를 마우스 오른쪽 버튼으로 클릭하고 Stream Logs(스트림 로그)를 선택합니다. 또는 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 리소스를 삭제합니다.

리소스 세부정보 보기

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

오른쪽 작업 표시줄의 탭을 사용하여 Kubernetes 탐색기 패널이 열립니다.

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

배포된 리소스에서 간편하게 kubectl describe을 실행하여 Kubernetes 탐색기 내에서 라벨을 마우스 오른쪽 버튼으로 클릭하고 Describe(설명)를 선택하면 세부정보를 표시할 수 있습니다.

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

구성

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

  • Skaffold 옵션
    • Skaffold configuration(Skaffold 구성) - 'skaffold.yaml' 구성 파일을 선택합니다. 프로젝트에 'skaffold.yaml' 파일이 있으면 자동으로 감지됩니다.
    • Deployment profile(배포 프로필) - 'skaffold.yaml' 파일에 구성된 사용 가능한 옵션에서 Profile(프로필)을 선택합니다.
    • 환경 변수 - Skaffold 배포 프로세스에 전달할 추가 환경 변수를 구성할 수 있습니다. Skaffold 플래그를 이 필드에서 사용할 환경 변수로 구성할 수도 있습니다. 사용 가능한 Skaffold 환경 변수의 전체 목록은 Skaffold CLI 참조 문서를 확인하세요.
    • 세부정보 수준 - trace, debug, info, warn, error 또는 fatal으로 출력 세부정보 수준을 설정할 수 있습니다. 기본 세부정보 수준은 warn입니다.
  • Kubernetes 옵션
    • 배포 컨텍스트 - 애플리케이션을 배포할 Kubernetes 컨텍스트를 나타냅니다. 기본 동작은 현재 시스템 컨텍스트에 배포하는 것입니다. 또는 실행/디버그 설정의 배포 섹션에서 '컨텍스트 전환 및 배포'를 선택하여 고정된 컨텍스트에 배포할 수 있습니다. 이 옵션은 배포 시 시스템의 현재 컨텍스트를 지정된 컨텍스트로 변경합니다. Cloud Code 실행 구성에서 Kubernetes 배포 컨텍스트 선택
    • 완료 시 배포 삭제 - 배포가 종료되면 Kubernetes 배포가 삭제됩니다. 기본 동작입니다. 또는 배포가 삭제되지 않도록 이 설정을 전환할 수 있습니다.
  • 컨테이너 이미지 스토리지 옵션
  • 빌드 설정

지원 받기

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