K8s 노드는 짝수로하면 싸움난다고요

Json·2025년 9월 23일
0

k8d

목록 보기
37/42

🧮 왜 K8s 노드 수는 홀수가 좋을까? (feat. ETCD & Raft)

“짝수로 하면… 싸움 난다구요 🤺”


🐣 Intro

쿠버네티스 클러스터를 만들다 보면 이런 얘기 꼭 듣습니다:

“마스터 노드는 홀수로 맞추세요~”

아니, 서버 갯수를 맞추는데 왜 갑자기 홀수 클럽 가입을 강요하는 걸까요?
짝수도 좋은 숫자인데 왜? 🤔


📦 원흉: ETCD & Raft

쿠버네티스의 모든 상태는 etcd 라는 키-값 저장소에 저장됩니다.
여기서 합의 알고리즘으로 Raft를 쓰는데…

Raft는 이런 룰이 있습니다:

  • 리더 선출 & 합의하려면 과반수가 필요함
  • 과반수 못 모으면?
    → “우리 클러스터는 무정부 상태다!” 선언하고 서비스 중단 😱

🎭 짝수 vs 홀수 상황극

Case 1: 노드가 2개 (짝수)

  • 1대 장애 → 1:1 비겼음
  • 과반수 없음 → 클러스터 멈춤 🚨
    (둘이 서로 “내가 리더임” 하다가 끝남)


Case 2: 노드가 3개 (홀수)

  • 1대 장애 → 2:1로 과반수 확보
  • 리더 뽑을 수 있음 → 클러스터 정상 운영 🥳

Case 3: 노드가 4개 (짝수)

  • 2대 장애 → 2:2 동률
  • 과반수 없음 → 클러스터 멈춤
  • (게다가 자원은 더 쓰는데 안정성은 3개랑 별 차이 없음)

Case 4: 노드가 5개 (홀수)

  • 2대 장애 → 3:2로 과반수 확보
  • 여전히 리더 선출 가능 → 서비스 유지 👌

🍕 비유로 이해하기

친구들이랑 피자 시켜 먹을 때를 생각해봅시다.

  • 사람이 2명 → 한 명은 치킨피자, 한 명은 불고기피자
    → 결론: 싸움남 🤬
  • 사람이 3명 → 두 명이 치킨피자 외치면 끝남
    → 결론: 질서 있게 피자 도착 🍕

👉 홀수 = 항상 과반수를 만들 수 있는 구조


📝 결론

  • 홀수 노드 = 합의 알고리즘이 해피 엔딩으로 끝날 확률 ↑
  • 짝수 노드 = 리더 선출하다가 싸움남 (=장애)

즉, 쿠버네티스에서 마스터 노드 수는 3, 5, 7… 이런 홀수로 맞추는 게 베스트입니다.


🎬 마무리

짝수 노드는 자원만 더 먹고, 결국 Raft 회의실에서 싸움만 만든다.

다음부터는 클러스터 짤 때 꼭 이렇게 기억하세요:

“K8s 마스터 노드 = 홀수로 가는 게 인생 꿀팁” 😎

0개의 댓글