GKE 클러스터를 생성했다면, 이미 개발한 애플리케이션을 클러스터에 간단하게 배치하는 방법을 구글 클라우드 쉘을 이용하여 진행해보려고 한다.
GKE(구글 쿠버네티스 엔진) 클러스터 생성
Udemy의 'Spring Boot Java Microservices를 활용한 Kubernetes 초심자용 강의 - GKE, AWS, EKS, Azure AKS를 중심으로 다루기' 강의를 들으면서 이해하거나 기억해야 할 내용을 간략하게 정리한 것이다. 강의에 나온
lazytechlog.tistory.com
1. 클라우드 쉘을 통해 구글 쿠버네티스 클러스터에 연결한다. Clusters 메뉴에서 클러스터 이름을 클릭하고 들어가서, 오른쪽 상단의 Activate Cloud Shell을 클릭하면 하단에 클라우드 쉘이 뜬다. 처음 activate할 때는 약간의 로딩 시간이 걸린다.

2. 하단에 뜬 터미널을 사용하기 편하게 다른 창으로 열어주는 것이 좋다. 하단의 터미널 오른쪽 상단에 있는 Open in new window 아이콘을 클릭한다. 새 창으로 터미널이 정상적으로 뜨면 하단의 터미널은 오른쪽 상단의 X 아이콘을 클릭하여 닫아준다.

3. 클라우드 쉘로 Cluster에 연결하기 위해서 클러스터 이름을 클릭 후 보이는 화면에서 상단에 있는 CONNECT 메뉴를 클릭한다. command line 오른쪽에 있는 복사 아이콘을 클릭하여 2번 단계에서 오픈한 새 창에 뜬 shell에 붙여넣기를 한다.
gcloud 명령어는 클러스터 이름과 zone, 그리고 project id를 명시하여 연결하도록 되어 있다.

project id는 Google Cloud 오른쪽에 있는 프로젝트 이름을 클릭하면 뜨는 프로젝트 리스트 팝업창에서 확인할 수 있다.

4. 앞선 과정이 모두 선행되어 cloud shell에서 cluster에 연결이 된 상태여야 다음의 과정을 진행할 수 있다. 클라우드 쉘에서는 이미 설치되어 있는 kubectl 쿠버네티스 명령어를 사용하여 클라우드 클러스터와 상호작용할 수 있다. kubectl 버전을 확인해보자.
@cloudshell:~ (proud-curve)$ kubectl version
Client Version: v1.31.5
Kustomize Version: v5.4.2
Server Version: v1.31.5-gke.1023000
여기서 Server 버전은 연결되어 있는 클러스터 머신의 버전으로서 클러스터 생성 시 지정한 타겟 버전과 동일하다.
5. kubectl을 이용하여 이미 개발되어 있는 간단한 애플리케이션을 배포해보겠다. 애플리케이션은 docker hub에 있는 image(https://hub.docker.com/r/in28min/hello-world-rest-api/tags)를 이용하기 때문에 별도로 개발할 필요는 없다. image 이름과 버전을 지정하여 kubectl create deployment를 하면 배포가 된다.
kubectl create deployment hello-world-rest-api --image=in28min/hello-world-rest-api:0.0.1.RELEASE
6. 배포한 deployment를 외부 서비스로 노출한다.
kubectl expose deployment hello-world-rest-api --type=LoadBalancer --port=8080
7. 이제 이 서비스를 browser를 통해 확인할 수 있다. 외부 접속을 위한 정보를 확인하기 위해 Networking > Gateways, Services & Ingress 메뉴를 클릭한 후 오른쪽 페이지에서 SERVICES 탭을 클릭하면 서비스 리스트를 확인할 수 있다. Endpoints에 있는 URL로 배포한 애플리케이션에 접근할 수 있다.

8. 7번 단계에서 확인한 {Endpoint}/hello-world-bean 주소를 browser에서 실행하면 간단한 hello world 메시지를 확인할 수 있다.

'Kubernetes' 카테고리의 다른 글
| 쿠버네티스 기본 개념 Pod, Replicaset, Deployment 들여다보기 (0) | 2025.03.01 |
|---|---|
| GKE(구글 쿠버네티스 엔진) 클러스터 생성 (1) | 2025.02.16 |