피드로 돌아가기
Kubernetes BlogDatabase
원문 읽기
etcd가 v3.5.26 이상으로 먼저 업그레이드하는 중간 단계를 추가해 v2store와 v3store 간 불일치로 인한 좀비 클러스터 멤버 문제 해결
Avoiding Zombie Cluster Members When Upgrading to etcd v3.6
AI 요약
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 이상을 거쳐 단계적으로 업그레이드해야 클러스터가 자동으로 복구되고 좀비 멤버 문제를 회피할 수 있습니다.