MMeshOps
쿠버네티스의 현실: 무작정 도입하기 전 알아야 할 컨테이너 오케스트레이션
3예상 8중급

클러스터(Cluster)의 마법: 컴퓨터를 한 대처럼 다루기

여러 대의 물리적/논리적 서버들을 묶어 마치 거대한 하나의 컴퓨터처럼 지휘하는 클러스터의 마법을 알아봅니다.

쿠버네티스 이야기에서 가장 자주 등장하는 단어 중 하나가 바로 '클러스터(Cluster)'입니다. IT 인프라에서 클러스터링은 개별적으로 작동하는 여러 대의 컴퓨터를 묶어서, 사용자가 보기에는 마치 엄청나게 강력한 한 대의 슈퍼컴퓨터처럼 보이게 만드는 마법입니다. 이번 에피소드에서는 쿠버네티스의 뼈대가 되는 클러스터의 구조와, 이 거대한 군대를 통솔하는 두 가지 핵심 역할(마스터와 워커)에 대해 알아봅니다.

클러스터란 무엇인가?

사전적 의미로 클러스터(Cluster)는 포도송이처럼 무언가가 모여 있는 무리를 뜻합니다. 컴퓨팅 세계에서 클러스터란 여러 대의 서버(컴퓨터)를 네트워크로 연결하여 하나의 거대한 자원 풀(Pool)로 만드는 기술입니다.

서버가 단 한 대뿐이라면, 그 서버가 고장 났을 때 서비스는 즉시 멈춥니다(단일 장애점, Single Point of Failure). 하지만 서버 10대를 하나의 클러스터로 묶어두면, 그 중 1~2대가 불타 없어지더라도 나머지 서버들이 일을 넘겨받아 서비스는 아무 일 없었다는 듯이 계속 돌아갑니다.

쿠버네티스 클러스터의 투트랙 전략

쿠버네티스 클러스터를 이해하기 위해서는 건설 현장을 떠올려보는 것이 좋습니다. 거대한 빌딩을 지으려면 도면을 보고 전체 일정을 관리하는 현장 소장과, 실제로 벽돌을 나르고 시멘트를 바르는 작업자들이 필요합니다.

쿠버네티스 클러스터도 정확히 이와 같은 두 부류의 서버들로 나뉩니다.

쿠버네티스 클러스터의 기본 구조

컨트롤 플레인 (Master Node)

명령과 통제

워커 노드 (Worker Node) 1

컨트롤 플레인 (Master Node)

명령과 통제

워커 노드 (Worker Node) 2

컨트롤 플레인 (Master Node)

명령과 통제

워커 노드 (Worker Node) N

두 가지 핵심 노드(Node)

쿠버네티스에서 컴퓨터(서버) 한 대 한 대를 노드(Node)라고 부릅니다. 이 노드들은 맡은 역할에 따라 명확하게 구분됩니다.

1. 컨트롤 플레인 (마스터 노드)

컨트롤 플레인(Control Plane)은 클러스터의 두뇌이자 지휘 본부입니다. 예전에는 마스터 노드(Master Node)라는 이름으로 더 자주 불렸습니다.

이 노드는 직접 앱이나 컨테이너를 실행하지 않습니다. 대신 전체 클러스터의 상태를 감시하고, 중요한 결정을 내립니다.

  • "새로운 컨테이너를 띄워야 하는데 어떤 서버가 한가하지?"
  • "어라? 3번 서버가 다운됐네! 빨리 3번 서버에서 돌던 앱들을 다른 곳으로 옮겨 실행시켜!"

이처럼 전체 시스템의 설계도(원하는 상태)를 기억하고, 클러스터가 항상 그 설계도대로 유지되도록 끊임없이 조율하는 역할을 합니다.

지휘자의 책상: etcd

컨트롤 플레인 내부에는 `etcd`라는 아주 중요한 데이터베이스가 있습니다. 이 곳에는 "우리 웹서버는 항상 5개가 켜져 있어야 해"라는 목표 상태와 클러스터의 모든 설정 정보가 저장됩니다. 컨트롤 플레인은 1초마다 이 기록을 확인하며, 현실과 목표가 다르면 즉각 시정 명령을 내립니다.

2. 워커 노드

워커 노드(Worker Node)는 실제로 우리가 만든 애플리케이션(컨테이너)이 띄워지고 돌아가는 일꾼 서버들입니다.

워커 노드는 스스로 중요한 결정을 내리지 않습니다. 그저 컨트롤 플레인에서 "여기다 웹서버 2개 띄워!"라고 명령이 오면 묵묵히 컨테이너를 실행하고, 자신에게 할당된 자원(CPU, 메모리)을 제공할 뿐입니다. 그리고 주기적으로 "저 지금 살아있고, CPU는 50% 정도 쓰고 있어요!"라고 지휘 본부에 상태를 보고합니다.

마스터와 워커의 역할 비교

구분역할비유
컨트롤 플레인 (Master)클러스터 전체 상태 관리 및 컨테이너 스케줄링 결정건설 현장 소장, 오케스트라 지휘자
워커 노드 (Worker)실제 컨테이너 실행 및 애플리케이션 구동건설 현장 인부, 오케스트라 연주자

클러스터가 주는 거대한 이점

쿠버네티스는 사용자가 개별 워커 노드의 존재를 신경 쓰지 않게 만듭니다. 개발자는 그저 컨트롤 플레인에게 "내 앱을 10개 띄워줘"라고 말할 뿐입니다. 어느 노드에 몇 개가 분산될지, IP 주소는 어떻게 할당될지 등 복잡한 내부 로직은 쿠버네티스가 클러스터 전체 자원을 계산하여 가장 최적의 방법으로 처리합니다.

이것이 바로 여러 대의 컴퓨터를 묶어 '하나의 마법 같은 컴퓨터'로 다루는 쿠버네티스 클러스터의 본질입니다.

개념 퀴즈

퀴즈 답을 맞춰야 학습 완료가 됩니다.

다음 중 쿠버네티스 클러스터의 '컨트롤 플레인(마스터 노드)'이 수행하는 역할로 가장 알맞은 것은?

3줄 요약

  1. 1클러스터는 여러 대의 독립된 서버들을 하나로 묶어 거대한 자원 풀처럼 사용할 수 있게 해주는 기술입니다.
  2. 2컨트롤 플레인은 클러스터의 두뇌로, 목표 상태를 기억하고 전체 워커 노드를 통제하며 감시합니다.
  3. 3워커 노드는 지휘 본부의 명령에 따라 실제 애플리케이션 컨테이너가 실행되는 일꾼 서버들입니다.