✔️ GKE 다루기
Google Kubernetes Engine (GKE)은 Google 인프라를 사용해 컨테이너화된 어플리케이션을 배포, 관리 및 확장하기 위한 관리형 환경을 제공한다.
Kubernetes Engine 환경은 컨테이너 클러스터를 형성하도록 그룹화된 여러 머신(특히 Compute Engine 인스턴스)로 구성된다.
GKE를 사용해 컨테이너를 생성하고 어플리케이션 배포를 실습해본다 !
✔️ Default Compute Zone 설정하기
Compute Zone이란 클러스터와 해당 리소스가 있는 대략적인 지역의 위치이다.
ex) us-central1-a는 us-central1의 영역의 zone인 것이다.
Default Compute Zone을 us-central1-a로 설정하기 위해 Cloud Shell에서 다음 명령을 입력한다.
gcloud config set compute/zone us-central1-a
✔️ GKE Cluster 생성하기
클러스터는 하나 이상의 클러스터 마스터 시스템과 노드라고 하는 여러 작업 시스템으로 구성된다.
노드는 컴퓨팅 엔진 VM(가상 머신) 인스턴스로, 노드를 클러스터의 일부로 만드는 데 필요한 Kubernetes 프로세스를 실행한다.
참고로 클러스터의 이름은 문자로 시작하고 영숫자로 끝나야하며 40자를 초과할 수 없다.
1. 클러스터를 생성하려면 다음 명령을 실행한다.
gcloud container clusters create [CLUSTER-NAME]
클러스터 생성을 완료하는데 몇분 정도의 시간이 걸릴 수 있다.
✔️ Cluster 인증 자격 증명 얻기
클러스터를 생성한 후 클러스터를 사용하려면 인증 자격 증명이 필요하다.
클러스터를 인증하려면 다음 명령을 실행한다.
gcloud container clusters get-credentials [CLUSTER-NAME]
✔️ Cluster에 어플리케이션 배포하기
이제 컨테이너형 애플리케이션을 클러스터에 배포할 수 있다. 이 실습에서는 클러스터에서 hello-app을 실행해본다.
GKE는 Kubernetes 개체를 사용하여 클러스터의 리소스를 만들고 관리한다.
Kubernetes는 웹 서버와 같은 stateless 애플리케이션을 배포하기 위한 배포 개체를 제공한다.
서비스 오브젝트는 인터넷에서 어플리케이션에 액세스하기 위한 규칙과 로드밸런싱을 정의한다.
1. hello-app 컨테이너 이미지에서 새로운 Deployment hello 서버를 작성하려면 다음 kubectl create 명령을 실행한다.
kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0
📌명령줄 설명
이 Kubernetes 명령어는 hello 서버를 나타내는 Deployment 개체를 만든다.
이 경우 --image는 전개할 컨테이너 이미지를 지정한다.
이 명령어는 컨테이너 레지스트리 버킷에서 샘플이미지를 가져온다.
gcr.io/google-samples/hello-app:1.0은 풀할 특정 이미지 버전을 나타내며 버전이 지정되지 않은 경우 최신 버전이 사용된다.
2. 응용 프로그램을 외부 트래픽에 노출할 수 있는 Kubernetes 리소스인 Kubernetes 서비스를 작성하려면 다음 cubectl expose 명령을 실행한다.
cubectl expose deployment hello-server --type=LoadBalancer --port 8080
📌명령줄 설명
--port는 컨테이너가 표시하는 포트를 지정한다.
type="LoadBalancer"는 컨테이너에 대한 Compute Engine load balancer를 생성한다.
kubectl get service
EXTERNAL-IP 에는 service의 EXTERNAL-IP를 입력한다.
http://[EXTERNAL-IP]:8080
✔️ Cluster 삭제하기
클러스터를 삭제하려면 다음 명령을 실행한다. 클러스터를 삭제하는 데 몇 분 정도 걸릴 수 있다.
gcloud container clusters delete [CLUSTER-NAME]
GKE로 클러스터를 구성하고 간단한 어플리케이션을 실습해보았다 !!
kubectl을 사용하니까 AWS로 진행한 동일한 내용의 실습과 크게 다른점이 없었다.
'Study > Study Jam' 카테고리의 다른 글
[Study Jam] Introduce to Docker (도커 입문) - 2. Debug, Publish (0) | 2022.03.24 |
---|---|
[Study Jam] Introduce to Docker (도커 입문) - 1. Build, Run (0) | 2022.03.24 |
[Study Jam] Orchestrating the Cloud with Kubernetes - 2 (0) | 2022.03.24 |
[Study Jam] Orchestrating the Cloud with Kubernetes - 1 (0) | 2022.03.23 |
[Study Jam] 네트워크 및 로드밸런서 설정하기 (0) | 2022.03.23 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!