체크포인트
Creating a Kubernetes Engine cluster
/ 25
Create a new Deployment - hello-server
/ 25
Create a Kubernetes Service
/ 25
Clean up: Delete the cluster
/ 25
Google Kubernetes Engine: Qwik Start
GSP100
개요
Google Kubernetes Engine(GKE)에서는 Google 인프라를 사용하여 컨테이너화된 애플리케이션을 배포, 관리, 확장할 수 있는 관리형 환경을 제공합니다. GKE 환경은 컨테이너 클러스터를 형성하도록 그룹화된 여러 머신(구체적으로 Compute Engine 인스턴스)으로 구성되어 있습니다.
이번 실습에서는 GKE를 사용하여 직접 컨테이너를 생성하고 애플리케이션을 배포해 봅니다.
목표
이 실습에서는 다음 작업을 수행하는 방법을 알아봅니다.
- GKE 클러스터 만들기
- 클러스터에 애플리케이션 배포
- 클러스터 삭제
Google Kubernetes Engine을 사용한 클러스터 조정
Google Kubernetes Engine(GKE) 클러스터는 Kubernetes 오픈소스 클러스터 관리 시스템을 기반으로 합니다. Kubernetes는 컨테이너 클러스터와 상호작용할 수 있는 메커니즘을 제공합니다. Kubernetes 명령어와 리소스를 사용하면 애플리케이션을 배포 및 관리하고 관리 작업을 수행하고 정책을 설정하며 배포된 워크로드의 상태를 모니터링할 수 있습니다.
Kubernetes는 널리 쓰이는 Google 서비스와 동일한 설계 원칙을 따르고 있어 자동 관리, 애플리케이션 컨테이너의 모니터링 및 활성 여부 프로브, 자동 확장, 순차적 업데이트와 같은 이점을 그대로 누릴 수 있습니다. 10년 이상 컨테이너로 프로덕션 워크로드를 실행해 온 Google의 경험이 녹아든 기술을 활용하여 컨테이너 클러스터에서 애플리케이션을 실행할 수 있습니다.
Google Cloud 기반 Kubernetes
GKE 클러스터를 실행하면 Google Cloud의 고급 클러스터 관리 기능을 활용할 수 있습니다. 예를 들면 다음과 같습니다.
- Compute Engine 인스턴스용 부하 분산
- 노드 풀로 클러스터 안에 하위 노드 집합을 지정하여 유연성 강화
- 클러스터의 노드 인스턴스 개수 자동 확장
- 클러스터의 노드 소프트웨어 자동 업그레이드
- 노드 자동 복구로 노드 상태 및 가용성을 유지 관리
- Cloud Monitoring을 통한 로깅 및 모니터링으로 클러스터에 대한 가시성 확보
Kubernetes 관련 기본 사항을 배웠으므로 이제 GKE를 사용하여 컨테이너화된 애플리케이션을 30분 이내에 배포하는 방법을 알아봅니다. 실습 환경을 설정하려면 아래 단계를 따르세요.
설정 및 요건
실습 시작 버튼을 클릭하기 전에
다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머에는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지 표시됩니다.
실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 직접 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.
이 실습을 완료하려면 다음을 준비해야 합니다.
- 표준 인터넷 브라우저 액세스 권한(Chrome 브라우저 권장)
- 실습을 완료하기에 충분한 시간---실습을 시작하고 나면 일시중지할 수 없습니다.
실습을 시작하고 Google Cloud 콘솔에 로그인하는 방법
-
실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 팝업이 열립니다. 왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 패널이 있습니다.
- Google Cloud 콘솔 열기 버튼
- 남은 시간
- 이 실습에 사용해야 하는 임시 사용자 인증 정보
- 필요한 경우 실습 진행을 위한 기타 정보
-
Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다).
실습에서 리소스가 가동되면 다른 탭이 열리고 로그인 페이지가 표시됩니다.
팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.
참고: 계정 선택 대화상자가 표시되면 다른 계정 사용을 클릭합니다. -
필요한 경우 아래의 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다.
{{{user_0.username | "Username"}}} 실습 세부정보 패널에서도 사용자 이름을 확인할 수 있습니다.
-
다음을 클릭합니다.
-
아래의 비밀번호를 복사하여 시작하기 대화상자에 붙여넣습니다.
{{{user_0.password | "Password"}}} 실습 세부정보 패널에서도 비밀번호를 확인할 수 있습니다.
-
다음을 클릭합니다.
중요: 실습에서 제공하는 사용자 인증 정보를 사용해야 합니다. Google Cloud 계정 사용자 인증 정보를 사용하지 마세요. 참고: 이 실습에 자신의 Google Cloud 계정을 사용하면 추가 요금이 발생할 수 있습니다. -
이후에 표시되는 페이지를 클릭하여 넘깁니다.
- 이용약관에 동의합니다.
- 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 않습니다.
- 무료 체험판을 신청하지 않습니다.
잠시 후 Google Cloud 콘솔이 이 탭에서 열립니다.
Cloud Shell 활성화
Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신으로, 5GB의 영구 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다. Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다.
- Google Cloud 콘솔 상단에서 Cloud Shell 활성화 를 클릭합니다.
연결되면 사용자 인증이 이미 처리된 것이며 프로젝트가 PROJECT_ID로 설정됩니다. 출력에 이 세션의 PROJECT_ID를 선언하는 줄이 포함됩니다.
gcloud
는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 명령줄 자동 완성을 지원합니다.
- (선택사항) 다음 명령어를 사용하여 활성 계정 이름 목록을 표시할 수 있습니다.
-
승인을 클릭합니다.
-
다음과 비슷한 결과가 출력됩니다.
출력:
- (선택사항) 다음 명령어를 사용하여 프로젝트 ID 목록을 표시할 수 있습니다.
출력:
출력 예시:
gcloud
전체 문서는 Google Cloud에서 gcloud CLI 개요 가이드를 참조하세요.
작업 1. 기본 컴퓨팅 영역 설정
컴퓨팅 영역이란 클러스터와 리소스가 존재하는 리전 내 대략적인 위치를 의미합니다. 예를 들어 us-central1-a
는 us-central1
리전에 속한 영역입니다.
Cloud Shell 세션에서 다음 명령어를 실행합니다.
-
기본 컴퓨팅 리전을 설정합니다.
gcloud config set compute/region {{{project_0.startup_script.project_region|"REGION"}}} 예상 출력:
Updated property [compute/region]. -
기본 컴퓨팅 영역을 설정합니다.
gcloud config set compute/zone {{{project_0.startup_script.project_zone|"ZONE"}}} 예상 출력:
Updated property [compute/zone].
작업 2. GKE 클러스터 만들기
클러스터는 1개 이상의 클러스터 마스터 머신과 노드라는 여러 작업자 머신으로 구성됩니다. 노드란 클러스터를 구성하기 위해 필요한 Kubernetes 프로세스를 실행하는 Compute Engine 가상 머신(VM) 인스턴스입니다.
다음 명령어를 실행합니다.
-
클러스터 만들기:
gcloud container clusters create --machine-type=e2-medium --zone={{{project_0.startup_script.project_zone|ZONE}}} lab-cluster
출력에 표시되는 경고는 모두 무시해도 괜찮습니다. 클러스터 생성이 완료되기까지 몇 분이 걸릴 수 있습니다.
예상 출력:
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
작업 3. 클러스터의 사용자 인증 정보 얻기
클러스터를 만든 후 클러스터와 상호작용하려면 사용자 인증 정보가 필요합니다.
-
클러스터에 인증합니다.
gcloud container clusters get-credentials lab-cluster 예상 출력:
Fetching cluster endpoint and auth data. kubeconfig entry generated for my-cluster.
작업 4. 클러스터에 애플리케이션 배포
이제 클러스터에 컨테이너화된 애플리케이션을 배포할 수 있습니다. 이번 실습에서는 hello-app
을 클러스터에서 실행합니다.
GKE는 Kubernetes 객체를 사용하여 클러스터의 리소스를 만들고 관리합니다. 웹 서버와 같은 스테이트리스(Stateless) 애플리케이션을 배포할 때는 Kubernetes에서 배포 객체를 사용합니다. 서비스 객체는 인터넷에서 애플리케이션에 액세스하기 위한 규칙과 부하 분산 방식을 정의합니다.
-
hello-app
컨테이너 이미지에서 새 배포hello-server
를 생성하려면kubectl create
명령어를 실행합니다.kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0 예상 출력:
deployment.apps/hello-server created 이 Kubernetes 명령어를 사용하면
hello-server
를 나타내는 배포 객체가 생성됩니다. 여기서--image
는 배포할 컨테이너 이미지를 지정합니다. 해당 명령어는 Container Registry 버킷에서 예시 이미지를 가져옵니다.gcr.io/google-samples/hello-app:1.0
은 가져올 이미지 버전을 나타냅니다. 버전이 지정되지 않은 경우 최신 버전이 사용됩니다.내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
새로운 배포 hello-server를 생성합니다. -
애플리케이션을 외부 트래픽에 노출할 수 있는 Kubernetes 리소스인 Kubernetes Service를 생성하려면 다음
kubectl expose
명령어를 실행합니다.kubectl expose deployment hello-server --type=LoadBalancer --port 8080 이 명령어에서
-
--port
는 컨테이너가 노출될 포트를 지정합니다. -
type="LoadBalancer"
는 컨테이너의 Compute Engine 부하 분산기를 생성합니다.
예상 출력:
service/hello-server exposed -
-
hello-server
서비스를 검사하려면kubectl get
을 실행합니다.kubectl get service 예상 출력:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-server loadBalancer 10.39.244.36 35.202.234.26 8080:31991/TCP 65s kubernetes ClusterIP 10.39.240.1 433/TCP 5m13s 참고: 외부 IP 주소가 생성되기까지 1분 정도 걸릴 수 있습니다. EXTERNAL-IP
열이 대기중 상태이면 위 명령어를 다시 실행하세요. -
웹브라우저에서 애플리케이션을 보려면 새 탭을 열고 다음 주소를 입력합니다. 여기서
[EXTERNAL IP]
는hello-server
의EXTERNAL-IP
로 바꿉니다.http://[EXTERNAL-IP]:8080 예상 출력: 브라우저 탭에 Hello, world! 메시지와 함께 버전, 호스트 이름이 표시됩니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
Kubernetes 서비스 만들기
작업 5. 클러스터 삭제
-
클러스터를 삭제하려면 다음 명령어를 실행합니다.
gcloud container clusters delete lab-cluster -
메시지가 표시되면 Y를 입력하여 확인합니다.
클러스터를 삭제하는 데 몇 분 정도 걸릴 수 있습니다. Google Kubernetes Engine(GKE)에서 GKE 클러스터 삭제하기에 대한 자세한 내용은 클러스터 삭제를 참조하세요.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
클러스터 삭제
수고하셨습니다
Google Kubernetes Engine에 컨테이너화된 애플리케이션을 배포했습니다. 이 실습에서는 GKE 클러스터를 만들고, 컨테이너화된 애플리케이션을 클러스터에 배포하고, 클러스터를 삭제했습니다. 이제 이 지식을 적용하여 GKE로 자체 애플리케이션을 배포할 수 있습니다.
다음 단계/더 학습하기
이 실습은 Qwik Start 실습 시리즈 중 하나이며, Google Cloud에서 제공하는 다양한 기능을 일부 소개하고자 마련되었습니다. Google Cloud Skills Boost 카탈로그에서 'Qwik Start'를 검색하여 다음으로 참여할 실습을 찾아보세요.
Google Cloud 교육 및 자격증
Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.
설명서 최종 업데이트: 2024년 2월 13일
실습 최종 테스트: 2024년 1월 26일
Copyright 2024 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.