[실습-초급02]Kubernetes Engine-Qwik Start
두번째 실습은 GKE(Google Kubernetes Engine)로 쿠버네티스 클러스터 생성 및 클러스터에서 앱 배포
를 배워 봅니다.
아래 5개의 Task를 해결하면서 간접적으로 경험해 봅시다.
Objectives(목표)
- GKE - Kubernetes로 컨테이너 생성 - 클러스터 생성
- 앱 배포 - 도커 이미지 배포
Task 1. Set a default compute zone
- Node(컴퓨팅리소스-VM) -> Pod(컨테이너 실행시킴), Container(어플리케이션)
-
Region > Zone > Cluster > Node > Pod
형태의 포함 관계를 가짐. - 쿠버네티스 클러스터(=아래그림 전체)
compute zone
을 세팅합니다.
- 참고) region은 지역, compute zone은 지역의 데이터센터
- 왜 사용?? CDN처럼 가까운 지역일수록 속도가 빠른장점
1. Google Cloud Console -> Cloud Shell 접속
Google Cloud Console 화면
Cloud Shell 실행 화면
-
gcloud config set compute/region us-east4
: us-east4 로 설정 -
gcloud config set compute/zone us-east4-c
: us-east4-c 로 설정- 참고 : Region > Zone 로써 Region이 더 큰 개념입니다.
Task 2. Create a GKE cluster
GKE 클러스터 생성을 합니다.
-
클러스터는 하나 이상의 “클러스터 Master 머신”과 “Worker 머신”으로 구성됩니다.
- “머신 = Node”로 보면 됩니다.
-
노드를 만들기 위해서는 컴퓨팅리소스가 필요한데, GCP에서는 가상머신(VM)으로 컴퓨팅리소스를 만듭니다.
- GKE로 클러스터 생성시 자동으로 만들어주기 때문에 직접 VM을 구축할 필요없다!!(편리)
1. 클러스터 생성
gcloud container clusters create --machine-type=e2-medium --zone=us-east4-c lab-cluster
- lab-cluster 이름으로 생성
- 5분 정도 소요
Task 3. Get authentication credentials the cluster
클러스터 사용에는 사용자 인증이 필수입니다.
-
쿠버네티스 클러스터와 Cloud Shell은 따로이기 때문입니다.
- Cloud Shell은 우리가 일반적으로 사용하는 cmd로 생각할 수 있습니다.
- 단, Cloud Shell에서 쿠버네티스 클러스터 생성했을 경우 해당 Shell에서는 자동으로 인증을 해놓기 때문에 바로 클러스터 정보를 조회하거나 사용이 가능합니다.
gcloud container clusters get-credentials lab-cluster
: 사용자 인증
Task 4. Deploy an application to the cluster
생성한 클러스터에 컨테이너한 앱을 배포합니다.
GKE는 Kubernetes 객체를 사용하여 클러스터를 관리하며, Kubernetes는 Deployment 객체와 Service 객체를 제공합니다.
- Service의 경우 앱을 외부 트래픽에 노출해주는 역할을 하므로 중요합니다!
1. Kubernetes의 Deployment 객체 생성
kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0
- 해당 Kubernetes 명령은
hello-server
배포 객체를 생성합니다. - 이때, 도커 이미지는 Container Registry 버킷에서 예제 이미지를(1.0버전) 가져옵니다.
2. Kubernetes의 Service 객체 생성
kubectl expose deployment hello-server --type=LoadBalancer --port 8080
- 포트 8080 매핑합니다.
- 로드밸런싱 타입으로 지정합니다.
kubectl get service
: 생성한 객체를 확인합니다.
- EXTERNAL-IP(외부연결 IP) 의 경우 생성되는데 시간이 걸린다는점!
3. EXTERNAL-IP로 접속해보기
http://[EXTERNAL-IP]:8080
Task 5. Deleting the cluster
생성한 클러스터 환경을 삭제해봅시다!
1. 클러스터 삭제
gcloud container clusters delete lab-cluster
: lab-cluster 삭제
마무리
GKE는 Kubernetes 객체를 사용하여 클러스터를 관리하며, Kubernetes는 Deployment 객체와 Service 객체를 제공합니다.
GKE 클러스터를 실행하면 Google Cloud가 제공하는 고급 클러스터 관리 기능(최적화 등등)을 사용할 수 있습니다.
실습흐름 : 클러스터를 생성 + 사용자인증 + 클러스터에 도커이미지 배포와 외부 트래픽에 연결
댓글남기기