GKE란

GKE(Google Kubernetes Engine) : Kubernetes를 자동으로 배포, 확장, 관리할 수 있습니다.

 

GKE 사용하기

구글 메뉴에서 "Kubernetes Engine"을 클릭합니다.

 

아래 화면에서 [사용] 버튼을 클릭합니다.

쿠버네티스 클러스터 생성하기

 

 

GKE Standard 구성하기

GKE Standard와 GKE Autopilot 두 가지 구성방식이 있으며, 본 문서에서는 GKE Standard 방식으로 구성합니다.

  • 표준 : 직접확장 구성, 노드를 직접관리, 노드당 결제
  • 오토파일럿 : 코드로드를 기준으로 자동확장, Google에서 노드를 관리, pod당 결제

클러스터 기본사항

클러스터 이름 및 영역을 설정한 후 만들기 버튼을 클릭합니다. 본 문서에스는 클러스터이름으로 cluster-1 을 사용하고 클러스터 위치유형은 영역으로 설정하고 asia-northeaset3-a 를 사용합니다.

 

 

아래와 같이 정삭적으로 생성된 것을 확인할 수 있다.

 

 

클러스터에 접속하기

생성된 클러스트를 클릭한 후 클러스터 메뉴에서 [연결] 버튼을 클릭합니다.

아래와 같이 클러스터에 연결할 수 있는 화면이 나타나는데 "CLOUD SHELL에서 실행"을 클릭합니다.

브라우저에서 클라우드 쉘이 실행되는데 쉘이 실행되면 gcloud 명령어가 입력되어 있는데 쿠버네티스 클러스터에 대한 인증을 받는 부분이므로 엔터키를 눌러 실행시켜줍니다.

아래는 gcloud 명령어 예입니다.  프로젝트명과 region은 각자의 환경에 따라 상이합니다.

$ gcloud container clusters get-credentials cluster-1 --zone asia-northeast3-a --project advance-casing
Fetching cluster endpoint and auth data.
kubeconfig entry generated for cluster-1.

 

kuberctl 명령어로 쿠버네티스 클러스터의 노드를 조회합니다. 여기서 나오는 모든 노드들은 워커 노드들입니다다. 관리를 위한 마스터 노드는 사용자에게 보여주지 않습니다.

$ kubectl get nodes
NAME                                       STATUS   ROLES    AGE   VERSION
gke-cluster-1-default-pool-87040182-2nzb   Ready    <none>   16m   v1.22.4-gke.1501
gke-cluster-1-default-pool-87040182-4r9w   Ready    <none>   16m   v1.22.4-gke.1501
gke-cluster-1-default-pool-87040182-tj88   Ready    <none>   16m   v1.22.4-gke.1501

 

nginx 배포와 접속

쿠버네티스에 nginx 컨테이너를 배포하고 외부에 로드밸런서를 구성해 봅니다.

$ kubectl create deploy nx --image=nginx # 포드와 컨테이너 생성
deployment.apps/nx created

$ kubectl expose deploy nx --type=LoadBalancer --port=80 # 외부 로드밸런서와 서비스 구성 
service/nx exposed

$ kubectl scale deploy nx --replicas=3 # nginx 컨테이너를 3개로 증가
deployment.apps/nx scaled

svc와 pod를 조회하면 다음과 같이  34.64.108.79 처럼 공인 IP를 확인할 수 있다. pod는 컨테이너를 관리하는 그룹으로 3개가 구성되고 있음을 확인할 수 있다. 공인 IP로 접근하면 해당 포드들로 접속할 수 있다.

$ kubectl get svc,pod
NAME                 TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)        AGE
service/kubernetes   ClusterIP      10.36.0.1      <none>         443/TCP        43m
service/nx           LoadBalancer   10.36.12.246   34.64.108.79   80:30877/TCP   87s

NAME                      READY   STATUS    RESTARTS   AGE
pod/nx-5d8c979794-cd22x   1/1     Running   0          70s
pod/nx-5d8c979794-kt4vs   1/1     Running   0          70s
pod/nx-5d8c979794-pcgc5   1/1     Running   0          108s

브라우저에 위에서 확인한 공인 IP( 34.64.108.79)를 입력하면 "Welcome to nginx!" 라는 문구를 볼 수 있습니다.

 

클러스터 삭제

학습용이나 테스트용으로 구성했을 경우 클러스터를 삭제합니다.

 

'쿠버네티스' 카테고리의 다른 글

쿠버네티스 - katacoda  (0) 2022.04.26
쿠버네티스란 무엇인가?  (0) 2022.04.25
GCP - Kubernetes Engine(GKE)  (0) 2022.03.22
minikube  (0) 2022.02.21
쿠버네티스 Pod 란  (0) 2022.02.17

+ Recent posts