GKE에서 App Engine 앱 실행

이 가이드에서는 GKE에서 App Engine 가변형 환경 애플리케이션을 실행하는 방법을 보여줍니다. GKE에서 앱을 실행하려면 Dockerfile을 만들고, 해당 Dockerfile을 사용하여 컨테이너를 빌드한 후 GKE에서 컨테이너를 실행해야 합니다. 코드를 변경할 필요는 없습니다.

시작하기 전에

이 페이지의 안내를 따르기 전에 다음 단계를 수행하세요.

  1. App Engine 가변형 환경에서 애플리케이션이 성공적으로 배포 및 실행되는지 확인합니다.

  2. 이 안내에서는 App Engine 앱에 사용한 것과 동일한 프로젝트를 사용하며, 원하는 경우 언제든지 새 프로젝트를 만들고 사용할 수 있습니다.

  3. API GKE, Cloud Build 사용 설정

    API 사용 설정

  4. Google Cloud CLI를 다운로드하여 설치한 후 gcloud 도구를 초기화합니다.
    SDK 다운로드

  5. Kubernetes kubectl 도구를 다운로드하여 설치합니다.

  6. Git을 다운로드하여 설치합니다.

    App Engine 앱용 Dockerfile 만들기

    Dockerfile 만들기에 설명된 대로 앱에 사용할 Dockerfile을 빌드합니다.

    Dockerfile에서 컨테이너 빌드

    컨테이너를 빌드하려면 다음 단계를 따르세요.

    1. 현재 디렉터리가 Dockerfile이 포함된 App Engine 애플리케이션 디렉터리인지 확인합니다.

    2. gcloud 도구에서 사용하는 기본 프로젝트를 변경하여 GKE에서 앱을 실행하는 데 사용하는 프로젝트를 가리키게 합니다.

      gcloud config set project [YOUR-PROJECT-ID]
      

      [YOUR-PROJECT-ID]를 GKE 프로젝트 ID로 바꿉니다.

    3. 다음 명령어를 사용하여 컨테이너를 빌드합니다.

      gcloud builds submit --tag gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME] .
      

      [YOUR-PROJECT-ID]를 GKE 프로젝트의 프로젝트 ID로 바꾸고 [YOUR-CONTAINER-NAME]을 앱 컨테이너에 사용할 컨테이너 이름으로 바꿉니다.

    4. 컨테이너가 빌드될 때까지 기다립니다. 시간이 다소 걸릴 수 있습니다. 성공적으로 완료되면 다음과 같은 메시지가 표시됩니다.

      Created [https://cloudbuild.googleapis.com/v1/projects/YOUR-PROJECT-ID/builds/xxxxxxx-xxxx-xxx-xxx-xxxxxxxxxxxx].
      Logs are permanently available at [https://console.developers.google.com/logs/viewer?resource=build&project=YOUR-PROJECT-ID&filters=text:xxxx-xxx-xxx-xxxxxxxxxxxx]].
      
      ID  CREATE_TIME DURATION  SOURCE                                                     IMAGES                               STATUS
      xxxxxxx-xxxx-xxx-xxx-xxxxxxxxxxxx  2017-03-04T00:42:10+00:00  1M32S     gs://YOUR-PROJECT-ID_cloudbuild/source/xxxxxxx.08.tgz  gcr.io/YOUR-PROJECT-ID/YOUR-CONTAINER-NAME  SUCCESS<
      

      컨테이너 이름을 기록합니다. GKE에서 컨테이너 실행 시 이름을 지정해야 합니다.

    GKE에서 앱 실행

    애플리케이션이 포함된 컨테이너를 실행하려면 다음 단계를 따르세요.

    1. 클러스터를 만듭니다. 몇 분 정도 걸릴 수 있습니다.

      gcloud container clusters create [YOUR-CLUSTER-NAME]
      

      [YOUR-CLUSTER-NAME]을 클러스터에 부여할 이름으로 바꿉니다.

    2. 명령줄에서 컴퓨팅 영역을 설정합니다.

      gcloud config set compute/zone us-central1-b
      
    3. GKE kubectl 도구가 승인되었는지 확인합니다.

      gcloud container clusters get-credentials [YOUR-CLUSTER-NAME]
      

      표시되는 메시지에 따라 도구를 승인합니다.

    4. 앱이 포함된 컨테이너를 실행합니다.

      kubectl create deployment [YOUR-DEPLOYMENT-NAME] --image=gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME]
      

      [YOUR-DEPLOYMENT-NAME]을 배포에 사용할 이름으로 바꾸고, [YOUR-PROJECT-ID]를 GKE 프로젝트 ID로 바꾸고, [YOUR-CONTAINER-NAME]을 앱을 위해 만든 컨테이너 이름으로 변경합니다.

    5. 공개 액세스가 가능하도록 컨테이너를 노출합니다.

      kubectl expose deployment [YOUR-DEPLOYMENT-NAME] --type="LoadBalancer" --port=8080
      

      [YOUR-DEPLOYMENT-NAME]을 이전 단계에서 사용한 이름으로 바꿉니다. 외부 IP를 확인하려면 몇 분 정도 기다려야 할 수 있습니다.

    6. 앱의 외부 IP 주소를 확인합니다.

      kubectl get service [YOUR-DEPLOYMENT-NAME]
      

      [YOUR-DEPLOYMENT-NAME]을 이전 단계에서 사용한 이름으로 바꿉니다. EXTERNAL IP 필드가 비어 있으면 잠시 기다린 후 명령어를 다시 호출합니다.

    7. GKE에서 실행 중인 앱을 봅니다.

      http://EXTERNAL-IP:8080
      

      EXTERNAL-IP를 이전 단계에서 가져온 외부 IP 주소로 바꿉니다.

    GKE에 App Engine 자바 앱을 성공적으로 배포하고 실행했습니다.

    다음 단계

    Kubernetes 및 kubectl 명령어에 대해 자세히 알아보세요. Google Kubernetes Engine은 컨테이너 관리, 배포, 확장에 Kubernetes를 사용합니다. Kubernetes에 대한 자세한 내용은 외부 Kubernetes 사이트를 참조하세요.

    이 가이드에서는 Kubernetes 클러스터 관리를 위한 명령줄 인터페이스 kubectl을 사용합니다. kubectl에 관한 상세 정보는 kubectl 참조에서 확인할 수 있습니다.