구글 클라우드 콘솔(https://console.developers.google.com)에 접속한 뒤 프로젝트를 선택합니다. 그리고 컴퓨팅 → Container Engine을 클릭하고 Create a cluster 버튼을 클릭합니다.
그림 11-6 Container Engine 클러스터 만들기
클러스터를 생성합니다.
설정이 완료되었으면 만들기 버튼을 클릭합니다.
그림 11-7 Container Engine 클러스터 만들기
Container Engine 클러스터가 만들어졌습니다.
그림 11-8 Container Engine 클러스터 생성 완료
Container Engine은 이 책을 쓰는 시점에 Alpha 버전입니다. 따라서 Google Cloud SDK에 preview 명령을 설치하고, 이 명령을 기준으로 설명하겠습니다. 추후 정식 버전이 출시되면 preview 명령은 설치하지 않아도 됩니다.
$ gcloud components update preview
다음 내용을 nginx-pod.json 파일로 저장합니다.
nginx-pod.json
{
"apiVersion": "v1beta1",
"kind": "Pod",
"id": "nginx-pod",
"desiredState": {
"manifest": {
"version": "v1beta1",
"id": "nginx-pod",
"containers": [{
"name": "hello-nginx",
"image": "nginx",
"ports": [{ "hostPort": 80, "containerPort": 80 }]
}]
}
},
"labels": { "name": "hello-nginx" }
}
Kubernetes Pod 형식이며 주요 부분만 간단하게 설명하겠습니다.
다음 명령을 실행하여 Pod을 생성합니다.
$ gcloud preview container pods --cluster=examplecluster create --name nginx-pod \
--zone=asia-east1-a \
--config-file=./nginx-pod.json
다음 내용을 nginx-service.json으로 저장합니다.
nginx-service.json
{
"apiVersion": "v1beta1",
"kind": "Service",
"id": "nginx",
"port": 80,
"containerPort": 80,
"selector": { "name": "hello-nginx" },
"createExternalLoadBalancer": true
}
다음 명령을 실행하여 서비스를 생성합니다.
$ gcloud preview container services --cluster=examplecluster create \
--zone=asia-east1-a \
--config-file=./nginx-service.json
다음 명령을 실행하여 클러스터 노드의 방화벽에서 80번 포트를 열어줍니다.
$ gcloud compute firewall-rules create examplecluster-node-80 \
--allow=tcp:80 \
--target-tags k8s-examplecluster-node
k8s-<클러스터 이름>-node
형식입니다. 클러스터 이름을examplecluster로 생성했으므로 k8s-examplecluster-node를 설정합니다.다시 구글 클라우드 콘솔로 접속하여 컴퓨팅 → Compute Engine → 네트워크 부하 분산을 클릭한 뒤 IP 주소를 확인합니다.
그림 11-9 네트워크 부하 분산의 IP 주소 확인
웹 브라우저를 실행하고 네트워크 부하 분산의 IP 주소로 접속하면 Container Engine의 Pod에서 실행한 nginx의 기본 페이지가 표시됩니다.
그림 11-10 Container Engine의 Pod에서 실행한 nginx에 접속
Kubernetes
Kubernetes는 구글에서 개발하고 있는 컨테이너, 클러스터 관리 도구입니다.