본문 바로가기
대외활동/Google Cloud Study Jam

[Kubernetes 입문] Kubernetes Engine: Qwik Start

by 드인 2022. 7. 25.

Kubernetes Engine: Qwik Start


Kubernetes Engine: Qwik Start

 

Kubernetes Engine: Qwik Start | Google Cloud Skills Boost

Google Kubernetes Engine에서는 Google 인프라를 사용하여 컨테이너식 애플리케이션을 배포, 관리 및 확장할 수 있는 관리형 환경을 제공합니다. 이 실습에서는 Kubernetes Engine으로 컨테이너식 애플리케

www.cloudskillsboost.google

 

1. 개요

 - Google Kubernetes Engine(GKE): Google 인프라를 사용하여 컨테이너화된 애플리케이션을 배포, 관리 및 확장하기 위한 관리 환경 제공

 -  Kubernetes Engine 환경은 컨테이너 클러스터를 형성하기 위해 그룹화된 여러 머신(ex. Compute Engine 인스턴스)으로 구성

 1) Google Kubernetes Engine을 사용한 클러스터 오케스트레이션

  - Google Kubernetes Engine(GKE) 클러스터는 Kubernetes 오픈 소스 클러스터 관리 시스템 기반

  - Kubernetes 컨테이너 클러스터와 상호 작용하는 메커니즘 제공

  - Kubernetes 명령 및 리소스로 애플리케이션 배포 및 관리, 관리 작업 수행, 정책 설정, 배포된 워크로드의 상태 모니터링

 2) Google Cloud의 Kubernetes

  - GCP가 제공하는 고급 클러스터 관리 기능

 

2. Setup and requirements

 - Google Cloud Platform(GCP) 환경 설정

 

3. Task 1. Set a default compute zone

- 컴퓨팅 영역(compute region)은 클러스터와 해당 리소스가 있는 대략적인 regional 위치

- Zone: us-central1-a

- Region: us-central1

 1) 기본 compute region 설정

gcloud config set compute/region

 2) 기본 compute zone 설정

gcloud config set compute/zone

 

4. Task 2. Create a GKE cluster

- 클러스터는 하나 이상의 클러스터 마스터 시스템과 노드라고 하는 여러 작업자 시스템으로 구성

- 노드: 클러스터의 일부로 Kubernetes 프로세스를 실행하는 Compute Engine 가상 머신(VM) 인스턴스

- 클러스터 생성

gcloud container clusters create --machine-type=e2-medium lab-cluster

 

5. Task 3. Get authentication credentials for the cluster

- 클러스터와 상호 작용하려면 인증 자격 증명 필요

- 클러스터 인증

gcloud container clusters get-credentials lab-cluster

 

6. Task 4. Deploy an application to the cluster

- GKEKubernetes 객체를 사용하여 클러스터의 리소스를 생성하고 관리

- Kubernetes웹 서버와 같은 상태 비저장 애플리케이션을 배포하기 위한 Deployment 개체 제공

-  서비스객체 인터넷에서 애플리케이션에 액세스하기 위한 규칙과 로드 밸런싱을 정의

1) 컨테이너 이미지에서 새 Deployment 생성

kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0

 - kubectl create command

 - --image: 배포할 컨테이너 이미지 지정

 - gcr.io/google-samples/hello-app:1.0: Container Registry 버킷에서 예시 이미지 가져옴

 

2) Kubernetes 서비스 생성

 -  Kubernetes 서비스: 애플리케이션을 외부 트래픽에 노출할 수 있는 Kubernetes 리소스

kubectl expose deployment hello-server --type=LoadBalancer --port 8080

 - kubectl expose command

 - --port: 컨테이너가 노출하는 포트 지정

 - type="LoadBalancer": 컨테이너에 대한 Compute Engine 부하 분산기 생성

 

3) 서비스 검사

kubectl get service

 - kubectl get

 

4) 웹 브라우저에서 애플리케이션 확인

http://[EXTERNAL-IP]:8080

 

7. Task 5. Deleting the cluster

- 클러스터 삭제

gcloud container clusters delete lab-cluster

 - 클러스터 삭제