이 가이드는 GKE에서 App Engine 가변형 환경 앱을 실행하는 방법을 보여줍니다. GKE에서 앱을 실행하려면 Dockerfile을 만들고 Cloud Build로 컨테이너를 빌드한 후 GKE에서 해당 컨테이너를 실행해야 합니다. 코드를 변경할 필요가 없습니다.
시작하기 전에
이 페이지의 안내를 따르기 전에 다음 단계를 수행하세요.
앱이 배포되고 App Engine 가변형 환경에서 성공적으로 실행되는지 확인합니다.
이 안내에서는 App Engine 앱에 사용한 것과 동일한 프로젝트를 사용하며, 원하는 경우 언제든지 새 프로젝트를 만들고 사용할 수 있습니다.
Enable the GKE, Cloud Build APIs.
Google Cloud CLI를 다운로드하여 설치한 다음 gcloud 도구를 초기화합니다. Google Cloud SDK 다운로드
또는 gcloud CLI,
git
와 언어 지원, 도구, 편집기 등의 사전 설치된 다른 기능이 함께 제공되는 Cloud Shell을 사용해도 됩니다.kubectl
명령줄 도구를 설치합니다.gcloud components install kubectl
App Engine 앱용 Dockerfile 만들기
Dockerfile 만들기에 설명된 대로 앱에 사용할 Dockerfile을 빌드합니다.
Dockerfile에서 컨테이너 빌드
컨테이너를 빌드하려면 다음 단계를 따르세요.
Dockerfile이 포함된 App Engine 앱 디렉터리에 있는지 확인합니다.
gcloud
도구에서 사용하는 기본 프로젝트를 변경하여 GKE에서 앱을 실행하는 데 사용하는 프로젝트를 가리키게 합니다.gcloud config set project [YOUR-PROJECT-ID]
[YOUR-PROJECT-ID]
를 GKE 프로젝트 ID로 바꿉니다.다음 명령어를 사용하여 컨테이너를 빌드합니다.
gcloud builds submit --tag gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME] .
[YOUR-PROJECT-ID]
를 GKE 프로젝트의 프로젝트 ID로 바꾸고[YOUR-CONTAINER-NAME]
을 앱 컨테이너에 사용할 컨테이너 이름으로 바꿉니다.컨테이너가 빌드될 때까지 기다립니다. 시간이 다소 걸릴 수 있습니다. 성공적으로 완료되면 다음과 같은 메시지가 표시됩니다.
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에서 앱 실행
앱이 포함된 컨테이너를 실행하려면 다음 안내를 따르세요.
클러스터를 만듭니다. 몇 분 정도 걸릴 수 있습니다.
gcloud container clusters create [YOUR-CLUSTER-NAME]
[YOUR-CLUSTER-NAME]
을 클러스터에 부여할 이름으로 바꿉니다.명령줄에서 컴퓨팅 영역을 설정합니다.
gcloud config set compute/zone us-central1-b
GKE
kubectl
도구가 승인되었는지 확인합니다.gcloud container clusters get-credentials [YOUR-CLUSTER-NAME]
표시되는 메시지에 따라 도구를 승인합니다.
앱이 포함된 컨테이너를 실행합니다.
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]
을 앱을 위해 만든 컨테이너 이름으로 변경합니다.공개 액세스가 가능하도록 컨테이너를 노출합니다.
kubectl expose deployment [YOUR-DEPLOYMENT-NAME] --type="LoadBalancer" --port=8080
[YOUR-DEPLOYMENT-NAME]
을 이전 단계에서 사용한 이름으로 바꿉니다. 외부 IP를 확인하려면 몇 분 정도 기다려야 할 수 있습니다.앱의 외부 IP 주소를 확인합니다.
kubectl get service [YOUR-DEPLOYMENT-NAME]
[YOUR-DEPLOYMENT-NAME]
을 이전 단계에서 사용한 이름으로 바꿉니다.EXTERNAL IP
필드가 비어 있으면 잠시 기다린 후 명령어를 다시 호출합니다.GKE에서 실행 중인 앱을 봅니다.
http://EXTERNAL-IP:8080
EXTERNAL-IP
를 이전 단계에서 가져온 외부 IP 주소로 바꿉니다.
GKE에 App Engine 앱을 성공적으로 배포 및 실행했습니다.
다음 단계
Kubernetes 및 kubectl
명령어에 대해 자세히 알아보세요.
Google Kubernetes Engine은 컨테이너 관리, 배포, 확장에 Kubernetes를 사용합니다. Kubernetes에 대한 자세한 내용은 외부 Kubernetes 사이트를 참조하세요.
이 가이드에서는 Kubernetes 클러스터 관리를 위한 명령줄 인터페이스 kubectl
을 사용합니다. kubectl
에 관한 상세 정보는 kubectl 참조에서 확인할 수 있습니다.