개요
etcd('엣시디'로 발음)는 머신의 분산된 시스템 또는 클러스터의 설정 공유, 서비스 검색 및 스케줄러 조정을 위한 일관된 오픈소스, 분산형 키-값 저장소입니다. etcd는 더욱 안전한 자동 업데이트를 지원하고, 호스트에 스케줄링되는 작업을 조정하며, 컨테이너에 대한 오버레이 네트워킹 설정을 지원합니다.
etcd는 다른 많은 프로젝트의 핵심 구성 요소입니다. 주목할 만한 점은 etcd가 컨테이너 오케스트레이션을 위한 사실상의 표준 시스템인 쿠버네티스의 기본 데이터 저장소라는 것입니다. 클라우드 네이티브 애플리케이션은 etcd를 사용함으로써 더욱 일관성 있는 가동 시간을 유지하고 개별 서버에 장애가 발생한 상황에서도 작동 상태를 유지할 수 있습니다. 애플리케이션은 etcd에서 데이터를 읽고 쓰며, 이를 통해 설정 데이터를 배포하여 노드 설정에 대한 이중화 및 복구 능력을 제공합니다.
쿠버네티스와 etcd
쿠버네티스의 기본 데이터 저장소인 etcd는 모든 쿠버네티스 클러스터 상태를 저장하고 복제합니다. etcd는 쿠버네티스 클러스터를 구성하는 필수 요소이므로 설정 및 관리에 대한 신뢰할 수 있는 접근 방식을 갖추는 것이 중요합니다.
etcd는 분산형 합의 기반 시스템이기 때문에 etcd의 클러스터 설정이 복잡할 수 있습니다. 부트스트래핑, 쿼럼 유지, 클러스터 멤버십 재설정, 백업 생성, 재해 복구 처리, 중요 이벤트 모니터링은 전문 지식이 필요한 복잡하고 지루한 태스크입니다.
etcd 오퍼레이터를 사용하면 이 모든 작업이 수월해집니다.
etcd 오퍼레이터
사람의 운영 지식을 대표하는 오퍼레이터를 사용하면 쿠버네티스 또는 Red Hat OpenShift와 같은 쿠버네티스 컨테이너 플랫폼에서 etcd를 더 손쉽게 사용할 수 있습니다. etcd 오퍼레이터는 오퍼레이터 프레임워크 내에서 etcd를 관리하고 etcd 클러스터 설정 및 관리를 간소화합니다.
etcd 오퍼레이터는 단일 명령으로 설치하고 사용자가 etcd 클러스터를 생성, 설정 및 관리하는 단순한 선언적 설정을 사용해 etcd의 복잡성을 설정하고 관리할 수 있도록 합니다.
etcd 오퍼레이터는 다음과 같은 기능을 제공합니다.
- 생성/제거 - 각 etcd 멤버에 대해 설정 세팅을 반복적으로 지정하는 대신에 사용자는 클러스터의 크기를 지정하기만 하면 됩니다.
- 크기 조정 - 사용자는 사양의 크기만 수정하면 되며, etcd 오퍼레이터가 클러스터 멤버 배포, 제거 및/또는 재설정 작업을 맡아 처리합니다.
- 백업 - etcd 오퍼레이터는 백업을 자동으로 투명하게 수행합니다. 사용자는 백업 정책만 지정하면 됩니다. 예를 들면, 30분마다 백업하고 마지막 3번의 백업을 보관합니다.
- 업그레이드 - 다운타임 없이 etcd를 업그레이드하는 것은 매우 중요하지만 까다로운 작업입니다. etcd 오퍼레이터를 이용하면 운영이 간소화되고 일반적인 업그레이드 오류를 방지할 수 있습니다.
작동 방법
etcd 오퍼레이터는 사람 오퍼레이터의 행동을 관찰, 분석, 동작이라는 3가지 단계로 시뮬레이션합니다.
- 오퍼레이터는 쿠버네티스 API를 사용해 현재 클러스터 상태를 관찰합니다.
- 그런 다음, 원하는 상태와 현재 상태 간의 차이를 파악합니다.
- 끝으로, etcd 클러스터 관리 API 또는 쿠버네티스 API 중 하나 또는 둘 다를 통해 차이를 수정합니다.
Red Hat의 지원 방식
etcd는 2013년 CoreOS 팀이 개발했으며, 업계 전반의 동료들로 구성된 팀과 함께 일하는 Red Hat 엔지니어가 유지관리하고 있습니다.
2018년 Red Hat과 CoreOS 팀은 클라우드 네이티브 시스템 도입을 추진하기 위해 etcd 커뮤니티 프로젝트를 Linux Foundation 산하의 벤더 중립적 조직인 CNCF(Cloud Native Computing Foundation)에 기여했습니다. etcd가 모든 쿠버네티스 클러스터를 구동하는 점을 고려하면, 이러한 기여를 통해 CNCF에서 etcd에 가장 많이 의존하는 커뮤니티에 etcd가 제공되는 것입니다.
Red Hat은 특히 엔터프라이즈급 쿠버네티스 제품인 Red Hat OpenShift의 일부로 etcd를 개발하는 데 지속적으로 참여할 계획입니다. Red Hat은 2015년 CNCF 출범을 지원한 초창기 지원 기업 중 하나이기도 하며, 그 이후 재단 및 커뮤니티와 함께 클라우드 네이티브 기술의 개발 및 성장을 위해 힘써 왔습니다. Red Hat의 역사와 오픈소스 소프트웨어 및 커뮤니티 중심 개발에 대한 헌신에 힘입어 etcd는 CNCF 내에서 커뮤니티에 더 큰 이점을 제공할 수 있습니다.