DevOps/k8s

[CKS] Google Cloud로 Master Node와 Worker Node 구성하는 방법

Sophie소피 2024. 6. 25. 18:56

Introduction 

Google Cloud Platform(GCP)에서 Kubernetes 클러스터를 구성하는 방법에 대해 알아보겠다.

두 개의 가상 머신(VM)을 사용하여 하나의 Master Node와 하나의 Worker Node를 구성할 것이다. 

 

 

Kubernetes Cluster 사양

  • 클러스터는 두 개의 가상 클러스터로만 구성된다.
    • 첫 번째 VM: cks-master (Master Node)
      • OS: Ubuntu 20.04 LTS
      • DISK: 50GB
      • CPU: 2
      • RAM: 4GB
    • 두 번째 VM: cks-worker (Worker Node)
      • OS: Ubuntu 20.04 LTS
      • DISK: 50GB
      • CPU: 2
      • RAM: 4GB
  • 클러스터 실행 스크립트
    • install_master.sh는 마스터 노드에서 실행
    • install_worker.sh는 워커 노드에서 실행

 

Google Cloud  설정 

Google Cloud Platform 사용자 계정 설정

PowerShell에서 다음 명령어를 실행하여 Google Cloud SDK를 설치한다. 

1. Google Cloud 메뉴에서 Compute Engine 선택 → VM 인스턴스 선택

2. Google Cloud의 CLI 도구 gcloud 설치

# Google Cloud SDK 설치 파일 다운로드
$url = "https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe"
$file = "$env:Temp\GoogleCloudSDKInstaller.exe"
$webClient = New-Object System.Net.WebClient
$webClient.DownloadFile($url, $file)

# 설치 파일 실행
& "$file"

 

 

3. gcloud 명령어를 사용하여 프로젝트 설정

gcloud config set project [PROJECT_ID]

 

 

Google Cloud Kubernetes Cluster 생성

 

Master Node 구성 

1. 사양 

gcloud compute instances create cks-master --zone=europe-west3-c \
--machine-type=e2-medium \
--image=ubuntu-2004-focal-v20220419 \
--image-project=ubuntu-os-cloud \
--boot-disk-size=50GB

 

2. VM 인스턴스에 접속 

gcloud compute ssh cks-master

 

3.  Master Node 설치 스크립트 실행

sudo -i
bash <(curl -s https://raw.githubusercontent.com/killer-sh/cks-course-environment/master/cluster-setup/latest/install_master.sh)

 

 

Worker Node 구성

1. 사양 

gcloud compute instances create cks-worker --zone=europe-west3-c \
--machine-type=e2-medium \
--image=ubuntu-2004-focal-v20220419 \
--image-project=ubuntu-os-cloud \
--boot-disk-size=50GB

 

 

2. VM 인스턴스에 접속 

gcloud compute ssh cks-worker

 

 

3. Worker Node 설치 스크립트 실행

sudo -i
bash <(curl -s https://raw.githubusercontent.com/killer-sh/cks-course-environment/master/cluster-setup/latest/install_worker.sh)

 

 

NodePort 서비스 활성화

Kubernetes에서 외부 트래픽을 특정 Pod로 전달하기 위해서는 NodePort 서비스를 사용해야 한다. 

gcloud compute firewall-rules create nodeports --allow tcp:30000-40000

NodePort는 클러스터 외부에서 Node의 특정 Port 범위를 통해 접근할 수 있게 해준다.  기본적으로 NodePort는 포트 범위 30000-32767을 사용하며, 이 port 범위는 클러스터의 각 Node에서 열려 있어야 외부 트래픽이 해당 Port를 통해 접근할 수 있다.

클러스터 내에서 실행되는 서비스에 외부에서 접근하려면 해당 Port들이 열려 있어야 한다. 예를 들어, 웹 애플리케이션을 Kubernetes 클러스터 내에서 실행 중이고, 이를 외부 사용자들이 접근할 수 있도록 하려면 NodePort 서비스를 설정하고 해당 Port를 열어야한다.

 

 

아래 명령어를 통해 현재 SSH 세션에서 로그아웃하고 다시 root user로 전환하는 과정이 필요하다. 이로 인해 설정 변경 사항이 완전히 적용되고 시스템 환경이 초기화될 수 있다. 

1. ssh session 종료 및 재로그인

exit

 

2. Root User로 전환 

sudo -i

 

3. Cluster 상태 확인

kubectl get nodes

 

cks-master와 cks-worker Node가 모두 cluster에 정상적으로 조인되었고, 상태가 "Ready"임을 확인할 수 있다. . master node와 worker node의 설정이 완료되면, 클러스터가 정상적으로 작동하는지 확인하여 안정적이고 효율적인 Kubernetes 환경을 구축할 수 있다. 이러한 과정을 통해 클러스터의 설정이 올바르게 적용되고, 모든 노드가 원활하게 통신하며 작동하는지 확인할 수 있다.

 

 

 

 

 

참고 강의 : 

https://www.youtube.com/watch?v=d9xfB5qaOfg