Kubernetes 애플리케이션 실행

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

애플리케이션 실행

  1. Cloud Code 상태 표시줄을 사용하여 Run on Kubernetes 명령어를 선택합니다.
  2. 애플리케이션에 필요한 Skaffold 구성이나 cloudcode.kubernetes 실행 구성이 없으면 Cloud Code에서 설정을 도와줍니다.
  3. 현재의 Kubernetes 컨텍스트를 사용하여 앱을 실행할지 또는 선호하는 앱으로 전환할지 확인합니다.
  4. 선택한 컨텍스트가 원격 클러스터의 경우 이미지를 푸시할 이미지 레지스트리를 제공하라는 메시지가 표시됩니다.

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

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

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

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

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

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

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

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

  7. 기본적으로 Cloud Code는 파일 시스템에서 파일(Kubernetes 구성 또는 코드)에 대한 변경사항을 계속 감시하고, 컨테이너를 다시 빌드하고, 애플리케이션을 클러스터에 다시 배포합니다. 따라서 수정사항이 거의 실시간으로 반영됩니다. 시작 구성에서 watch 플래그를 사용하여 이 동작을 변경할 수 있습니다.

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

    • 배포 로그 열기: Cloud Code 로그 뷰어를 사용하여 특정 배포의 애플리케이션 로그를 엽니다.
    • 서비스 URL 열기: 웹브라우저에서 특정 서비스의 애플리케이션 서비스 URL을 엽니다.
    • 시계 모드 켜기/끄기: 현재 세션의 시계 모드를 전환합니다(디버그 세션에는 사용할 수 없음).

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

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

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

실행 구성 맞춤설정

애플리케이션의 실행 방법을 구성하려면 skaffold.yaml 콘텐츠를 맞춤설정하고 .vscode/launch.json에서 cloudcode.kubernetes 구성에 다음 필드를 지정하면 됩니다.

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