IT/Cloud & DevOps

클라우드 환경에서 쿠버네티스 클러스터 만들기

iamhyeon 2025. 4. 19. 21:49

💡 쿠버네티스

- 컨테이너화된 애플리케이션을 자동으로 배포, 관리, 확장(스케일링)해주는 오케스트레이션 도구다 

- 쿠버네티스 플랫폼을 이용하면 컨테이너 기술을 이용해서 만들어졌기 때문에 대규모 서비스 환경을 운영하기 위한 2가지 요소 "고가용성", "내결함성"을 자동으로 챙길 수 있다 

- 운영체제에 상관없이 개발자의 의도대로 서비스가 운영된다 

 

💡 컨테이너 오케스트레이션

- 여러 개의 컨테이너를 자동으로 배포하고, 연결하고, 복구하고, 확장하는 것이다 

- 복잡한 컨테이너 운영이 필요할 때, 자동으로 운영해주는 툴 = 컨테이너 오케스트레이션 툴

- 컨테이너 오케스트레이션 툴은 쿠버네티스가 대표적이며, 이외에도 다양한 툴들이 있다

    - Kubernetes,  AWS ECS,  Docker Swarm,  Apache Mesos,  Docker Compose

- 컨테이너 오케스트레이션 툴이 컨테이너를 자동으로 관리하는 행위

- 컨테이너 오케스트레이션 툴은 컨테이너 기술과 다르게, 정확한 표준이라는 게 없기 때문에 개념이 조금 조금씩 다를 수 있다

    - 하지만, 대부분 쿠버네티스를 표준으로 생각한다

 

 

|  쿠버네티스를 설치하는 여러 가지 방법
- 직접 설치하는 방법: Kubernetes, OpenShift 등
    - 직접 여러 서버 컴퓨터에 쿠버네티스를 일일이 설치하는 방법
    - 주로 보안상의 이유로 자체적인 데이터센터를 이용해야하는 금융권 등에서 사용되는 방법이며, 이와 같은 세팅은 전문 인프라 엔지니어가 담당한다
- 클라우드 서비스를 이용하는 방법: AWS EKS, GCP GKE, Azure AKS 등
    - AWS와 같은 클라우드 서비스를 이용할 때 사용하는 방법으로, 대부분의 스타트업에서 활용하는 방법이다 
    - 몇 단계의 간단한 설정만으로 쉽게 쿠버네티스 클러스터를 구축하고 관리 할 수 있다 


 

 🔶 GCP에서 GKE 클러스터 만들기

 

💡 GCP

- Google Cloud Platform

- 구글이 제공하는 클라우드 컴퓨팅 서비스 플랫폼
- 컴퓨터(서버), 저장공간(하드디스크), 네트워크 같은 인프라를 직접 사서 구축하지 않고, 인터넷을 통해 구글이 제공하는 자원을 빌려서 사용하는 것 

- 서버 없이도 웹사이트나 앱을 배포할 수 있다 (무중단 서비스 가능)
- 트래픽 많아지면 자동으로 스케일링 가능하다 
- 필요할 때만 사용한 만큼 과금 
- 전 세계에 분산된 인프라

 

💡 GKE

- Google Kubernetes Engine

- GCP에서 제공하는 쿠버네티스 관리 서비스
- 쿠버네티스를 구글 클라우드(GCP)에서 쉽게 쓸 수 있도록 도와주는 서비스
- 구글이 만든 쿠버네티스(Kubernetes)를 설치, 배포, 관리할 수 있게 해주는 서비스이다 
- 쿠버네티스를 직접 설치하고 서버 인프라를 구성하지 않아도

   GCP에서 클러스터 생성 → 앱 배포 → 자동 확장/복구를 쉽게 할 수 있다

 

✅ GCP에서 콘솔 접속 후, GKE 검색

 

https://cloud.google.com/free?utm_source=google&utm_medium=cpc&utm_campaign=japac-KR-all-ko-dr-BKWS-all-core-trial-EXA-dr-1710102&utm_content=text-ad-none-none-DEV_c-CRE_668690472449-ADGP_Hybrid+%7C+BKWS+-+EXA+%7C+Txt+-GCP-General-core+brand-main-KWID_43700077514871058-kwd-87853815&userloc_9195812-network_g&utm_term=KW_gcp&gad_source=1&gad_campaignid=20424845163&gclid=Cj0KCQjwzYLABhD4ARIsALySuCTkWx2003HQ5ToOuM4fgnLluRmPooTBpqIWxt8PiQpmt3G7fUTbeJcaAit4EALw_wcB&gclsrc=aw.ds&hl=ko

 

 

|  Kubernetes Engine API를 활성화해야한다는 화면이 나오면, ‘사용’ 버튼을 누르고 완료될때까지 기다린다 

 

|  GKE 서비스에 정상적으로 진입하면 다음과 같은 대시보드 화면이 나타난다 

 

 

🔶 클러스터 생성

 

✅ 좌측 메뉴에서 ‘클러스터’를 클릭하여 클러스터 관리 화면에 진입한 뒤, 클러스터 ‘만들기’ 버튼을 클릭한다 

 

 

✅ 우측 상단에 있는 ‘STANDARD 클러스터로 전환’ 버튼을 클릭해 스탠다드 클러스터 생성화면으로 이동한다

- GCP는 기본적으로 Autopilot이라는 추상화 수준이 매우 높은 쿠버네티스 서비스를 제공하고 있다

- 실제 운영할때는 모든 컴퓨팅 자원(노드) 관리를 알아서 해주기 때문에 편리하지만

- Node와 관련한 개념을 제대로 이해하려면 스탠다드 모드로 학습을 진행한다

- 나중에 모든 개념을 이해한 후 Autopilot 모드를 한번 사용해보는것도 좋다

 

 

🔶 클러스터 설정 

 

✅ 클러스터 이름을 자유롭게 입력해준 후, 위치 유형을 ‘영역’으로 선택 

 

영역 (Zone) :  지역(region)의 세부 데이터센터 위치 (ex. asia-northeast3-a)

 

- ‘asia-northeast3-a’, ‘asia-northeast3-b’, ‘asia-northeast3-c’ 중에서 아무거나 하나 선택
- GCP에서 ‘asia-northeast3’는 대한민국(서울)을 의미한다
- ‘asia-northeast3-b’는 대한민국에 있는 구글 데이터센터 중 2번째 데이터센터(가용영역)를 의미한다고 보면 된다 

 

 

🔶 노드 풀(default-pool) 설정

 

✅ 좌측 메뉴에서 ‘default-pool’이라고 되어있는 메뉴를 클릭한다 

 

‘노드 수’는 2로 입력

‘클러스터 자동 확장 처리 사용 설정’을 활성화

위치 정책은 ‘균형’

크기 한도 유형은 ‘영역별 한도’

‘최소 노드 수’는 2, ‘최대 노드 수’는 4로 입력

 

 

🔶 노드 유형 설정

 

✅ 좌측 메뉴에서 ‘노드’를 클릭해 노드 상세 설정 화면에 진입한다 

 

‘범용’ → ‘N1’을 선택

머신 유형에서 ‘n1-standard-1’을 선택

보조 부팅 디스크 부분의 부팅 디스크 크기를 20으로 입력

 

 

✅  ‘기능’을 클릭하여 기능 설정 화면에 진입 

작업 부분의 모든 항목을 체크 해제 

 

 

✅ 화면 하단 중앙에 있는 ‘만들기’ 버튼을 클릭해 클러스터 생성을 완료한다 

 

 

🔶 GCP CLI  설치 및 설정

 

✅ GCP CLI 검색

https://cloud.google.com/sdk/docs/install?hl=ko

GCP CLI 설치 

더보기

GCP CLI

- GCP를 터미널에서 다룰 수 있게 해주는 도구

- 설치과정에서 무언가를 묻는 화면이 나온다면, 전부 ‘예’로 선택하고 넘어간다 

 

- gcloud 설정 화면으로 진입하게 되면 GCP를 사용하는 구글 계정으로 로그인해준다 

 

 

✅ 현재 사용중인 GCP 프로젝트를 선택한다 
(GCP 가입 시 자동으로 생성된 프로젝트 이외에 별도로 만든것이 없다면, 그냥 1을 입력하면 된다)

 

- 기본 지역을 설정할지 물어보는 화면이 나오면 n을 입력하여 거절한다 

 

 

🔶 쿠버네티스 명령어 설치

 

✅ 명령어 입력해 GCP CLI 쿠버네티스 플러그인 설치 화면으로 진입한다

gcloud components install kubectl

- 쿠버네티스 명령어를 CLI에서 쓸 수 있게 된다 

- 설치 과정에서 무언가를 물어보는 화면이 나온다면 모두 ‘예’를 선택하여 설치를 완료한다 

 

 

 

🔶 GKE 클러스터와 연결

 

✅ 내 컴퓨터에 GKE 클러스터 접속 정보 설정

✅ GCP 콘솔에서 쿠버네티스 클러스터의 상세 화면으로 진입한다 

 

✅ 화면 상단에 있는 ‘연결’ 버튼을 클릭

 

 

✅ 클러스터에 연결 할 수 있는 CLI 명령어를 복사한 뒤, 터미널에 입력한다 

 

 

✅ 제대로 연결 설정이 되었는지 확인

kubectl config get-contexts

 

 


 

1. 쿠버네티스?
쿠버네티스는 컨테이너를 자동으로 운영해주는 시스템
- 컨테이너 = 앱을 담은 작은 상자 (보통 Docker로 만듦)
- 쿠버네티스 = 그 상자들을 띄우고, 나눠주고, 고장나면 다시 띄우는 관리자 

 

2. 클러스터?
- 쿠버네티스가 일하는 환경 = 클러스터
- 여러 대의 컴퓨터(노드)를 묶어서 하나의 덩어리처럼 관리하는 시스템
- 쿠버네티스는 이 클러스터 위에서 컨테이너들을 운영한다 

3. 쿠버네티스를 쓰는 방법 2가지
- 쿠버네티스를 직접 설치한다
- 클라우드에서 쿠버네티스 클러스터를 만든다 ✔️

4. GCP GKE

- 구글에서 쿠버네티스를 쉽게 쓰게 해주는 서비스

 

5. kubectl

쿠버네티스 클러스터를 제어할 수 있는 커맨드라인 툴 

 

[ GCP 콘솔 ]
      ↓ 클러스터 생성 (Standard)
[ GKE 클러스터 ]
  ├─ Node 1 (n1-standard-1)
  └─ Node 2 (n1-standard-1)
      ↓
[ 컨테이너 배포 ]
      ↓
kubectl 로 상태 확인, 배포, 삭제 등 제어

 

반응형