목표
온라인 데모 IDE인 Cloud Shell 편집기에서 다음 개발 태스크를 수행하는 방법을 알아봅니다.
샘플 Kubernetes 앱을 만듭니다.
개발 환경에서 앱을 실행 및 업데이트하고 로그를 확인합니다.
GKE 클러스터에 앱을 배포합니다.
Cloud Code를 설치하는 경우 자체 IDE에서 비슷한 프로세스를 수행할 수 있습니다.
Google Cloud 콘솔에서 이 태스크에 대한 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.
비용
이 문서에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud 구성요소를 사용합니다.
프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.
이 문서에 설명된 태스크를 완료했으면 만든 리소스를 삭제하여 청구가 계속되는 것을 방지할 수 있습니다. 자세한 내용은 삭제를 참조하세요.
시작하기 전에
Kubernetes 클러스터 만들기 자세한 내용은 클러스터 만들기 및 워크로드 배포를 참조하세요.
Google Cloud 프로젝트 및 클러스터 선택
이 튜토리얼의 뒷부분에서 GKE에 앱을 배포할 때는 Google Cloud 프로젝트 및 GKE 클러스터를 지정해야 합니다.
GKE 클러스터 페이지로 이동합니다.
GKE 클러스터가 포함된 프로젝트를 선택합니다.
프로젝트 및 클러스터 이름을 기록해 둡니다.
이 정보는 나중에 필요합니다.
Cloud Shell 편집기에서 앱 만들기
Google Cloud 콘솔의 태스크 표시줄에서
Cloud Shell을 클릭하여 Cloud Shell을 엽니다.편집기 열기 를 클릭합니다.Cloud Shell 편집기가 초기화될 때까지 기다립니다.
Cloud Shell 편집기에서 보기 > 명령어 팔레트를 클릭합니다.
Cloud Code: 새 애플리케이션을 검색하고 클릭합니다.
Kubernetes 애플리케이션을 선택한 후Go: Hello World를 선택합니다.
각 언어 프레임워크마다 환경이 약간 다를 수 있으며 이 튜토리얼에서는 Go 환경의 기능을 기준으로 설명합니다.
저장 대화상자에서 새 애플리케이션 만들기를 클릭합니다.
Cloud Shell 편집기가 새로고침되고 탐색기 보기에 앱 소스 파일이 표시됩니다.
앱은 다음으로 구성됩니다.
기본
go-hello-world
웹 앱인 는 수신된 모든 요청에 대해 '실행 중입니다'라는 템플릿 기반 응답을 반환합니다.main.go
Kubernetes 배포 사양
hello.deployment.yaml
앱의 부하 분산기를 정의하는 Kubernetes 서비스 사양hello.service.yaml
앱 빌드 및 배포 워크플로를 처리하는 Skaffold 파일인
skaffold.yaml
개발 환경에서 앱 실행
가능하면 GKE에 배포하기 전에 개발 환경에서 앱을 실행합니다. 이렇게 하면 Google Cloud 할당량을 사용하지 않고도 발생 가능한 문제를 식별하는 데 도움이 됩니다.
Cloud Shell 편집기 환경에서 앱을 실행하려면 다음 안내를 따르세요.
Cloud Shell 편집기에서 터미널 > 새 터미널을 클릭합니다.
다음 명령어를 실행하여 클러스터를 시작합니다.
minikube start
minikube는 로컬 환경에서 VM을 만들고 노드가 하나만 포함된 단순 클러스터를 배포하는 가벼운 Kubernetes 구현입니다.
minikube 클러스터를 설정하는 데 1분 정도 걸릴 수 있습니다.
Cloud Shell에서 Cloud API를 호출할 수 있도록 승인하라는 메시지가 표시되면 승인을 클릭합니다.
minikube 클러스터가 설정되면 다음과 유사한 메시지가 표시됩니다.
Done! kubectl is now configured to use "minikube" cluster...
minikube를 설정한 후 앱을 빌드하고 실행합니다.
Cloud Shell 편집기 상태 표시줄에서
Cloud Code 를 클릭합니다.Kubernetes에서 실행을 선택합니다.
메시지가 표시되면 현재 minikube 컨텍스트를 사용할지 확인합니다.
Cloud Shell 편집기가 앱을 빌드하고 이를 minikube 클러스터에 배포합니다.
개발 세션 보기에서 배포 상태를 확인합니다.배포가 완료되면 녹색 체크표시가 포트 전달 URL 옆에 표시됩니다. 회전하는 아이콘이 스트림 애플리케이션 로그 옆에 표시됩니다.
앱을 보려면 개발 세션 창을 자세히 보고 포트 전달 URL > 서비스를 찾습니다.
go-hello-world-external 위로 포인터를 가져가고 URL 열기를 클릭합니다.
앱 수정
앱에서 소스 파일을 변경할 때는 Cloud Shell Editor가 앱을 자동으로 빌드하고 현재 연결된 클러스터에 배포합니다. 여기에서는 minikube 클러스터에 연결되어 있습니다.
앱을 수정하고 로컬 minikube 클러스터에 다시 배포하려면 다음 안내를 따르세요.
'다시 배포되었습니다'를 출력하도록
파일을 수정합니다. 파일은 자동으로 저장됩니다.main.go
앱을 다시 빌드하고 배포하는 동안
개발 세션 보기를 확인합니다.이전과 같이 다시 배포된 앱을 확인합니다.
개발 세션 창에서 포트 전달 URL > 서비스를 찾습니다.
go-hello-world-external 위로 포인터를 가져가고 URL 열기를 클릭합니다.
앱 로그 보기
Cloud Shell 편집기 메뉴 바에서 보기 > 명령어 팔레트를 선택합니다.
Cloud Code: 로그 보기를 검색하고 클릭합니다.
로그 뷰어가 열립니다.
배포 에서go-hello-world
를 선택합니다.그러면
go-hello-world
앱의 로그만 표시하도록 로그 뷰어가 필터링됩니다.'다시 배포되었습니다'라고 표시된 앱 탭으로 전환합니다. 브라우저에서 페이지를 새로고침한 다음 Cloud Shell 탭으로 다시 전환합니다.
로그 뷰어에서 새로 생성된 로그를 보려면
새로고침 을 클릭합니다.
GKE 클러스터에 앱 배포
배포할 수 있는 클러스터 목록에 GKE 클러스터를 추가합니다.
Kubernetes 보기에서 KubeConfig에 클러스터 추가를 클릭합니다.플랫폼 선택 대화상자에서 Google Kubernetes Engine을 클릭합니다.
Google Cloud API를 사용 설정하라는 메시지가 표시되면 예를 클릭합니다.
Cloud Shell 편집기가 Google Cloud 프로젝트에서 클러스터를 찾을 때까지 기다립니다.
GKE 클러스터 만들기 또는 선택 대화상자에서 이전에 만든 클러스터 이름인 hello-world-cluster를 선택합니다.
Cloud Shell 편집기 상태 표시줄에서
Cloud Code 를 클릭하고 Kubernetes에서 실행을 선택합니다.배포 요청의 컨텍스트를 선택하라는 메시지가 표시되면 GKE 클러스터로 설정된 현재 컨텍스트 사용을 선택합니다.
이미지 저장소 선택 대화상자에서 gcr.io/PROJECT_NAME를 선택합니다.
Cloud Shell 편집기가 앱을 컨테이너에 빌드하고 선택한 저장소에 컨테이너를 저장합니다.
앱을 다시 빌드하고 배포하는 동안
개발 세션 보기를 확인합니다.앱을 GKE에 배포하는 동안 로그 메시지를 자세히 보려면 개발 세션 보기에서 클러스터에 배포 노드를 클릭합니다.
실행 중인 앱을 보려면 다음 안내를 따르세요.
개발 세션 제목을 클릭하여 보기를 닫습니다.
Kubernetes 보기를 엽니다.GKE 클러스터를 확장합니다.
네임스페이스 > 기본값 > 서비스 > go-hello-world-external > 외부 IP로 이동합니다.
IP 주소 위로 포인터를 가져가고
URL 열기를 클릭합니다.
지금까지 IDE에서 GKE 앱을 성공적으로 만들고 배포했습니다.
다음 단계
Google Cloud 제품 사용을 보여주는 코드 샘플 보기
IDE에 Cloud Code 설치
요금이 청구되지 않도록 삭제합니다. 추가 튜토리얼을 수행하려면 해당 튜토리얼을 완료할 때까지 기다린 후에 삭제하세요. 대부분의 GKE 튜토리얼에서 샘플 Kubernetes 클러스터를 사용할 수 있습니다.