컴퓨팅 영역이란 클러스터와 리소스가 존재하는 리전 내 대략적인 위치를 의미한다. 예를 들어 us-central1-a
는 us-central1
리전에 속한 영역이다.
gcloud config set compute/region us-central1
gcloud config set compute/zone us-central1-a
클러스터
는 1개 이상의 클러스터 마스터 머신과 노드라는 여러 작업자 머신으로 구성된다. 노드
란 클러스터를 구성하기 위해 필요한 Kubernetes 프로세스를 실행하는 Compute Engine 가상 머신(VM) 인스턴스이다.
gcloud container clusters create --machine-type=e2-medium --zone=us-central1-a lab-cluster
gcloud container clusters get-credentials lab-cluster
이제 클러스터에 컨테이너화된 애플리케이션을 배포할 수 있다. 이번 실습에서는 hello-app
을 클러스터에서 실행한다.
GKE는 Kubernetes 객체를 사용하여 클러스터의 리소스를 만들고 관리한다. 웹 서버와 같은 스테이트리스(Stateless) 애플리케이션을 배포할 때는 Kubernetes에서 배포 객체
를 사용한다. 서비스 객체
는 인터넷에서 애플리케이션에 액세스하기 위한 규칙과 부하 분산 방식을 정의한다.
hello-app
컨테이너 이미지에서 새 배포 hello-server
를 생성kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0
--image
는 배포할 컨테이너 이미지를 지정kubectl expose deployment hello-server --type=LoadBalancer --port 8080
type="LoadBalancer"
는 컨테이너의 Compute Engine 부하 분산기를 생성hello-server
서비스를 검사 (1분정도 소요)kubectl get service
http://[EXTERNAL-IP]:8080
EXTERNAL-IP는 kubectl get service
입력했을 때 나오는 EXTERNAL-IP를 입력한다.
gcloud container clusters delete lab-cluster
몇 분 정도 소요된다.