Kubernetes 애플리케이션 실행

Cloud Code를 사용하면 skaffold dev를 사용하여 Kubernetes 클러스터에서 애플리케이션을 쉽게 실행하고 라이브로 볼 수 있습니다. Minikube 또는 Docker Desktop과 같은 로컬 클러스터, Google Kubernetes Engine 또는 다른 클라우드 제공업체에서 애플리케이션을 실행할 수 있습니다.

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

애플리케이션 실행

  1. 명령어 팔레트(Cmd/Ctrl+ Shift+P로 액세스 가능)에서 Cloud Code: Kubernetes에서 실행을 실행합니다.
  2. 현재의 Kubernetes 컨텍스트를 사용하여 앱을 실행할지 또는 선호하는 컨텍스트로 전환할지 확인합니다. Kubernetes 컨텍스트 설정에 대한 자세한 내용은 구성 설정을 참조하세요.
  3. Kubernetes 컨텍스트가 원격 클러스터이면 이미지를 푸시할 이미지 레지스트리를 제공하라는 메시지가 표시됩니다.

    다음은 몇 가지 일반적인 레지스트리의 경우 컨테이너 이미지가 저장되는 위치를 지정하는 방법의 예입니다.

    Docker Hub docker.io/{account}
    비공개 Docker Hub 저장소를 사용하는 경우 적절하게 인증되었는지 확인합니다.
    Container Registry gcr.io/{project_id}

    Cloud Code는 이 이미지 레지스트리를 Kubernetes 매니페스트에 지정된 이미지 이름과 연결하여 최종 이미지 저장소 이름을 생성합니다.

    자세한 내용은 이미지 레지스트리 처리 가이드를 참조하세요.

    이 선택사항은 cloudcode.kubernetes 시작 구성(.vscode/launch.json에 있음)에 저장됩니다.

    Cloud Code가 컨테이너를 빌드하여 레지스트리로 푸시하고 Kubernetes 구성을 클러스터에 적용하여 출시를 기다립니다.

    출시가 완료되면 Cloud Code는 선언된 모든 컨테이너 포트를 자동으로 머신에 포트 전달하고 출력창에 URL을 표시하여 실시간 애플리케이션을 탐색할 수 있습니다.

    포트를 전달하고 출력창에 URL 표시

  4. 세션이 완료되면 Cloud Code 상태 표시줄을 통해 애플리케이션 및 리소스를 모니터링할 수 있는 추가 컨텍스트 메뉴 옵션을 사용할 수 있습니다.

    • 배포 로그 열기: Cloud Code 로그 뷰어를 사용하여 특정 배포의 애플리케이션 로그를 엽니다.
    • 서비스 URL 열기: 웹브라우저에서 특정 서비스의 애플리케이션 서비스 URL을 엽니다.
    • 감시 모드 사용 설정/중지: 현재 세션의 감시 모드를 전환합니다. 기본적으로 Cloud Code는 파일 시스템에서 파일(Kubernetes 구성 또는 코드)에 대한 변경사항을 계속 감시하고, 컨테이너를 다시 빌드하고, 애플리케이션을 클러스터에 다시 배포합니다. 따라서 수정사항이 거의 실시간으로 반영됩니다.

      Cloud Code 상태 표시줄 사용으로 사용 가능한 옵션: 일반 Cloud Code 작업 외에도 배포 로그 열기, 서비스 URL 열기, 감시 모드 사용 설정

  5. 애플리케이션 실행을 중지하려면 디버그 툴바에서 디버그 중지 아이콘 중지를 클릭합니다.

    애플리케이션을 중지한 후 배포된 모든 Kubernetes 리소스가 클러스터에서 삭제됩니다. 시작 구성에서 cleanUp 플래그를 사용하여 이 동작을 변경할 수 있습니다.

빌더 및 빌드 환경 선택

루트에 skaffold.yaml 파일이 없거나 .vscode/launch.json 파일에서 skaffold.yaml을 참조하지 않는 프로젝트에서 Cloud Code UI를 사용하여 빌더 및 빌드 환경을 선택할 수 있습니다. 로컬 빌드는 자체 리소스를 사용하므로 무료입니다. Cloud Build를 사용하여 빌드하는 것은 대상 클러스터의 프로세서 아키텍처와 일치하지 않는 머신 또는 느린 머신에 적합합니다. Cloud Build를 사용하여 애플리케이션을 빌드하는 비용에 대한 자세한 내용은 Cloud Build 가격 책정을 참조하세요.

샘플 중 하나를 사용하는 경우 UI를 사용하려면 빌드 작업을 실행하기 전 skaffold.yaml 파일을 삭제합니다. UI를 사용하지 않고 빌더 및 빌드 환경을 선택하는 단계는 수동으로 Skaffold 구성 만들기를 참조하세요.

  1. skaffold.yaml 파일이 없는 프로젝트의 경우 명령어 팔레트(Cmd/Ctrl+ Shift+P로 액세스 가능)에서 Cloud Code: Kubernetes에서 실행 또는 Cloud Code: Kubernetes에서 디버그를 실행합니다.

  2. 빌드 환경을 선택합니다.

    Cloud Build를 선택하는 경우 이미지 레지스트리를 지정합니다.

  3. 각 이미지 및 설정에 빌더(Docker 또는 Buildpack)를 지정합니다.

  4. 구성 옵션을 선택하거나 선택 해제한 후 디버그 또는 실행을 클릭합니다.

선택한 옵션은 skaffold.yaml 파일에 저장되며 이 파일을 직접 수정하여 추가로 맞춤설정할 수 있습니다.

실행 구성 맞춤설정

애플리케이션 실행 방법을 구성하려면 skaffold.yaml 파일을 맞춤설정할 수 있습니다.

.vscode/launch.json 파일의 cloudcode.kubernetes 구성에서 다음 필드를 지정하여 실행을 구성할 수도 있습니다.

  • skaffoldConfig: 빌드 및 배포 설정이 포함된 Skaffold 구성 파일을 지정합니다.
  • profile: 원하는 Skaffold 프로필을 지정합니다. 정의되지 않으면 기본 프로필이 사용됩니다.
  • imageRegistry: 이미지를 푸시할 이미지 레지스트리를 지정합니다.
  • watch: 작업 공간에서 변경사항을 감시할지 여부를 지정하고 애플리케이션을 다시 실행합니다. 명시적으로 false로 설정하지 않는 한 기본적으로 true입니다.
  • cleanUp: 애플리케이션이 종료된 후 클러스터에서 배포된 Kubernetes 리소스를 삭제할지 여부를 지정합니다. 명시적으로 false로 설정하지 않는 한 기본적으로 true입니다.
  • portForward: 클러스터에서 노출된 Kubernetes 리소스에 대해 로컬 머신으로 포트를 전달할지 여부를 지정합니다. 명시적으로 false로 설정하지 않는 한 기본적으로 true입니다.