나만의 k8s 클러스터 구축하기 - #3 GCP GKE편
2 min read
이번 포스트에서는 GCP GKE를 이용하여 나만의 클러스터를 구축하는 방법에 대해 살펴보겠습니다.
- VirtualBox편
- Amazon EKS편
- GCP GKE편
안내 사항
- GCP GKE는 클러스터 비용으로 시간당 $0.10, 워커 노드 비용으로 GCE 비용이 청구되오니 유의하시기 바랍니다. 테스트 목적이라면 구축 후 바로 삭제하시기 바랍니다.
- GCP GKE 버전: 2020년 9월 현재, 기본
1.15
를 사용합니다.
설치 방법
유저 등록
GCP 프로젝트에 유저를 등록하고 다음과 같은 역할을 부여합니다.
IAM & Admin
ADD
버튼 클릭- New Members: 등록할 유저 (gmail) 입력
- Role
Kubernetes Engine Admin
Service Account User
Save
클러스터 생성
등록한 유저로 GCP 콘솔에 접속하여 우측 상단의 터미널 버튼을 클릭하여 Cloud Shell을 실행합니다.
다음과 같은 명령을 이용하여 GKE 클러스터를 생성합니다.
CLUSTER_NAME=core-kubernetes
REGION=asia-northeast3-a
gcloud components update
gcloud config set compute/zone $REGION
gcloud container clusters create $CLUSTER_NAME \
--enable-autoscaling \
--min-nodes=1 \
--num-nodes=1 \
--max-nodes=3 \
--node-locations=$REGION \
--machine-type=n1-standard-4
# 클러스터 확인
kubectl get node
# NAME STATUS ROLES AGE VERSION
# gke-core-kubernetes-default-pool-b5dfd3f2-4f84 Ready <none> 6m38s v1.15.12-gke.2
Cluster AutoScaler 설정
# GKE에는 기본적으로 metrics-server가 설치되어 있습니다.
kubectl get pod -nkube-system | grep metrics-server
# NAME READY STATUS RESTARTS AGE
# metrics-server-v0.3.3-fdc67d4b6-vbfwt 2/2 Running 0 6m11s
cat << EOF | kubectl apply -f -
# heavy-cal.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: heavy-cal
spec:
selector:
matchLabels:
run: heavy-cal
replicas: 1
template:
metadata:
labels:
run: heavy-cal
spec:
containers:
- name: heavy-cal
image: k8s.gcr.io/hpa-example
ports:
- containerPort: 80
resources:
limits:
cpu: 500m
requests:
cpu: 300m
---
apiVersion: v1
kind: Service
metadata:
name: heavy-cal
spec:
ports:
- port: 80
selector:
run: heavy-cal
EOF
# 바로 Pod의 개수를 늘려봅니다.
kubectl scale deployment heavy-cal --replicas=50
# GKE 워커 노드가 늘어나는지 확인해보시기 바랍니다.
watch kubectl get node
EKS 클러스터 삭제
다음 명령을 이용하여 EKS 클러스터를 삭제하시기 바랍니다.
gcloud container clusters delete $CLUSTER_NAME
유저 삭제
GCP 콘솔을 접속하여 유저를 꼭 삭제합니다.
IAM & Admin
- 등록한 유저 checkbox 클릭
REMOVE
버튼 클릭
마치며
쿠버네티스가 구글에서 나온 오픈소스 프로젝트인 만큼 GCP에서는 매우 밀접하게 쿠버네티스와 연결되어 있습니다. GCP를 이용하여 쿠버네티스를 구축하는 경우 클라우드 플랫폼 자체에서 많은 쿠버네티스 기능들을 지원합니다. 여러분들도 GKE를 활용하여 즐겁게 쿠버네티스를 맛보시길 바랍니다.