피드로 돌아가기
Kubernetes BlogKubernetes Blog
Database

etcd가 v3.5.26 이상으로 먼저 업그레이드하는 중간 단계를 추가해 v2store와 v3store 간 불일치로 인한 좀비 클러스터 멤버 문제 해결

Avoiding Zombie Cluster Members When Upgrading to etcd v3.6

2025년 12월 21일8intermediate

Context

etcd v3.6으로 업그레이드할 때 v2store와 v3store 간 멤버십 데이터 불일치가 발생하면서 제거된 노드들이 "좀비 멤버"로 재출현하여 클러스터가 불능 상태에 빠지는 문제가 있었습니다. etcd v3.5 이하에서는 v2store가 멤버십 데이터의 원본이었으나, v3.6에서는 v3store로 변경되면서 이 불일치가 클러스터 운영을 방해했습니다.

Technical Solution

  • v3store와 v2store 자동 동기화 메커니즘을 etcd v3.5.26에 추가: 영향받은 클러스터가 v3.6 업그레이드 전 자동으로 복구되도록 구현
  • 세 단계 업그레이드 경로 제공: v3.5.26 이상으로 먼저 업그레이드 → 모든 멤버가 정상임을 확인 → v3.6으로 최종 업그레이드
  • etcdctl snapshot restore 버그 수정 (v3.4 및 이전 버전): 스냅샷 복구 시 기존 멤버를 먼저 제거하도록 수정
  • --force-new-cluster 플래그 동작 개선 (v3.5.22): 단일 멤버 클러스터 강제 생성 시 이전 멤버를 완전히 제거하도록 수정
  • v3.6 이상에서는 v3store를 멤버십 데이터의 유일한 원본으로 설정: 향후 불일치 문제 발생 불가능

Key Takeaway

etcd를 포함한 분산 시스템 업그레이드 시 데이터 스토어 간 불일치가 여러 가지 경로(스냅샷 복구, 강제 클러스터 생성, WAL 동기화 비활성화 등)로 발생할 수 있으므로, 중간 버전을 경유하는 단계적 업그레이드 전략과 자동 복구 메커니즘이 필수적입니다.


etcd를 운영하는 조직에서 v

3.

5.25 이하 버전을 사용 중이라면, v

3.6으로 직접 업그레이드하지 말고 반드시 v

3.

5.26 이상을 거쳐 단계적으로 업그레이드해야 클러스터가 자동으로 복구되고 좀비 멤버 문제를 회피할 수 있습니다.

원문 읽기