쿠버네티스에서 Postgres 실행하기: ‘왜’에서 ‘어떻게’로의 전환

EDB 팀
2024년 9월 24일

오픈 소스 컨테이너 오케스트레이션 시스템인 Kubernetes가 설립되었을 때, 데이터베이스 애호가들은 이것이 애플리케이션에 이상적인 솔루션이라고 믿었지만, 반드시 상태 저장 워크로드에는 적합하지 않았습니다. 그러나 오늘날에는 스토리지 기술의 상당한 발전, 강력한 운영자의 개발, 그리고 데이터 온 쿠버네티스 커뮤니티(DoKC)의 노력으로 인해 기술 리더의 90%가 쿠버네티스가 스테이트풀 워크로드를 지원할 준비가 되어 있다고 말합니다.

대화는 “Kubernetes에 데이터베이스를 설치해야 하는가?”에서 “어떻게 데이터베이스를 설치해야 하는가?”로 바뀌었습니다.

최근 진행된 패널 토론에서는 Kubernetes에서 Postgres 실행에 관한 패널 토론에서 EDB 기술 펠로우인 마크 린스터가 이 오픈 소스 플랫폼의 진화, AI 워크로드와의 통합, 스토리지 및 데이터 보호의 발전 등에 대해 Kubernetes 사고 리더들과 인터뷰를 가졌습니다.

패널 토론을 YouTube에서 시청하려면 여기를 클릭하세요.

다음은 토론의 주요 내용 중 일부입니다:

Kubernetes는 데이터베이스와 잘 작동하나요?

데이터 온 Kubernetes 커뮤니티의 디렉터이자 Constantia의 설립자 겸 CEO인 멜리사 로건은 Kubernetes와 데이터베이스가 정말 잘 작동한다고 말합니다. “지난 4~5년 동안 이 커뮤니티를 운영하면서 Kubernetes에서 데이터베이스를 실행하는 것에 대한 관심이 크게 증가했으며, 이제 사람들은 완전히 그렇게 하고 있습니다.”라고 그녀는 말합니다.

Melissa는 DoKC가 Etsy와 Chick-fil-A부터 싱가포르의 음식 배달 서비스인 Grab에 이르기까지 모든 유형의 회사가 데이터에 Kubernetes를 사용하고 있음을 보여줬다고 말합니다. “Kubernetes에서 계속 개선되고 있는 기능 덕분에 사람들이 이 작업을 더 쉽고 간편하게 할 수 있게 되었습니다.”라고 그녀는 말합니다.

AI/ML 워크로드는 Kubernetes 환경 내에서 관리되는 데이터베이스에 어떤 영향을 미칠까요?

VMware의 클라우드 네이티브 스토리지 기술 책임자이자 CNCF 태그 스토리지 및 Kubernetes SIG 스토리지의 공동 의장인 싱 양은 AI 머신 러닝 워크로드에는 대량의 정형 및 비정형 데이터가 포함되므로 높은 확장성, 자동 확장 기능, 동적 리소스 할당이 필요하다는 점을 강조합니다. 또한 이러한 워크로드는 짧은 지연 시간과 함께 고성능을 요구하며, 일반적으로 데이터에 대한 읽기 전용 액세스가 필요합니다. “이 모든 것이 Kubernetes에서 데이터베이스를 실행하는 데 서로 다른 영향을 미칩니다.”라고 싱은 말합니다. “그래서 SIG 스토리지에서는 이러한 요구사항을 충족하고 Kubernetes가 현재와 미래의 워크로드를 모두 처리할 수 있도록 하기 위해 많은 작업을 해왔습니다.”

스토리지 특별 관심 그룹(SIG)은 현재 효율적인 백업 및 복원 작업에 중요한 SIG CoW(Copy-on-Write) 및 변경된 블록 추적(CBT) 지원을 위해 협력하고 있습니다. 또한 여러 볼륨을 동시에 스냅샷할 수 있는 볼륨 그룹 스냅샷 기능을 개발 중이며, 현재 알파 버전입니다.

2022년 CloudNativePG가 오픈 소스화된 이후에는 어떤 일이 일어났나요?

Kubernetes용으로 설계된 세계 최초의 오픈 소스 Postgres 운영자인 CloudNativePG(CNPG)는 2022년 5월 발렌시아에서 열린 KubeCon Europe에서 EDB에 의해 처음 오픈 소스화되었습니다. EDB는 아파치 라이선스 2.0을 채택하고 지적 재산을 CloudNativePG 커뮤니티에 기부했으며, GitHub의 샌드박스를 통해 클라우드 네이티브 컴퓨팅 재단(CNCF) 프로젝트가 되기를 바라는 장기적인 열망을 표명했습니다.

EDB의 수석 아키텍트 겸 Kubernetes 부사장인 Gabriele Bartolini는 IBM에서 운영되다가 오픈소스화된 후 CloudNativePG 프로젝트가 어떻게 빠르게 발전했는지를 강조합니다. 오픈 소스 출시 이후 불과 2년 만에 CloudNativePG는 GitHub 스타를 기반으로 가장 인기 있는 Postgres용 Kubernetes 운영자가 되었습니다. CloudNativePG는 4,300개 이상의 GitHub 스타를 획득하여 Zalando 및 CrunchyData와 같은 초기 리더를 능가했습니다.

CloudNativePG는 GitHub에서 4,300개 이상의 별을 획득했습니다.

CloudNativePG 개발의 핵심 결정은 완전히 선언적으로 만들고 Patroni와 같은 외부 장애 조치 관리자에 의존하지 않고 Kubernetes와 직접 통합하는 것이었습니다.

“Kubernetes에 PostgreSQL 클러스터를 처리하는 방법을 가르치는 것이 제 생각에는 최선의 결정이었으며, 그다음으로는 StatefulSets를 사용하는 대신 영구 볼륨 클레임(PVC)을 직접 관리하는 것이었습니다.”라고 Gabriele은 말합니다. “PVC를 관리함으로써 복구를 위한 볼륨 스냅샷 백업을 구현할 수 있었습니다.”

CloudNativePG는 볼륨 그룹 스냅샷에 대한 베타 기능을 지원하는 최초의 데이터베이스 운영자 중 하나가 될 준비가 되어 있습니다. 이 기능 및 기타 기능을 개발하는 과정에서 Gabriele의 팀은 Kubernetes를 Postgres로 가져오는 데 초점을 맞추기보다는 PostgreSQL을 Kubernetes 에코시스템에 통합하는 데 초점을 맞추고 있습니다.

“Kubernetes 커뮤니티와 함께 시너지를 낼 수 있게 되어 정말 기쁩니다. 일반적으로 가장 큰 차별점은 우리가 Kubernetes를 Postgres로 가져오는 것이 아니라 실제로 Postgres를 Kubernetes로 가져와 Kubernetes 에코시스템 및 커뮤니티와 통합하려고 한다는 점이라고 생각합니다.”

– Gabriele Bartolini, EDB의 수석 아키텍트 겸 Kubernetes 부사

Kubernetes에서 EDB Postgres를 사용하는 IBM

IBM 크라쿠프 소프트웨어 연구소의 수석 기술 스태프이자 CTO인 Piotr Godowski는 그의 팀이 어떻게 Kubernetes 플랫폼인 Red Hat OpenShift 위에서 실행되는 고객 관리 소프트웨어인 콘텐츠 권한 소프트웨어 오퍼링의 임베디드 데이터베이스로 EDB Postgres를 사용하는지 설명합니다.

IBM은 이 임베디드 관계형 데이터베이스를 통해 지연 시간이 짧고 카디널리티가 낮은 데이터 메타스토어부터 다양한 애플리케이션과 AI/ML 워크로드를 위한 고성능 분산형 고가용성 데이터베이스까지 상상할 수 있는 모든 유형의 워크로드를 처리할 수 있게 되었습니다.

“견고함과 성능뿐 아니라 Kubernetes에 얼마나 잘 맞고 Kubernetes에서 사용하는 선언적 패턴에 부합하는지에 대해서도 우리는 EDB의 Postgres 운영자에 정말 만족합니다.”라고 Piotr는 말합니다.

Piotr의 팀은 또한 온라인 백업 중 데이터 보안을 위한 EDB의 백업 및 복원 개선 사항과 혼돈 테스트 시나리오에서 Postgres를 관리하는 EDB 운영자의 복원력도 높이 평가합니다. 또한 EDB 운영자의 안정성과 EDB가 장기 지원 릴리스를 제공하고 회귀 위험을 최소화하고 규제 환경 및 산업에서의 배포 적합성을 보장하는 방식도 높이 평가했습니다.

IBM은 EDB Postgres를 수많은 소프트웨어 제품에 통합하여 수백 개의 OpenShift 클러스터에 배포했습니다.

“OpenShift가 실행되는 모든 곳에서 고객이 EDB Postgres로 구동되고 백업되는 IBM 소프트웨어를 배포하고 있습니다. CloudNativePG 오픈 소스 프로젝트가 시작된 이래로 채택률이 3배로 증가했으며, 이는 이 기술이 얼마나 견고한지를 보여주는 증거입니다.”

– Piotr Godowski, IBM 크라쿠프 소프트웨어 연구소의 CTO

Kubernetes가 특별한 이유는 무엇일까요?


가브리엘은 Kubernetes의 모듈식 특성 덕분에 개발자는 자신이 담당하는 부분에 집중할 수 있다고 지적합니다. “여기서 이해해야 할 핵심 사항은 수행해야 하는 작업이 소프트웨어의 책임이거나 Kubernetes의 외부 구성 요소에 위임할 수 있는 작업인 경우입니다. 스토리지 계층을 이해함으로써 코드를 더 적게 개발할 수 있었습니다.”라고 그는 결론을 내립니다.

Kubernetes의 표준 인터페이스는 새로운 기능의 개발과 구현을 크게 간소화했습니다. “그렇기 때문에 전 세계 수백만 명의 사용자가 이미 테스트한 것을 활용할 수 있고 다른 공급업체의 지원을 받을 수 있는 Kubernetes 에코시스템의 일원이 되는 것이 매우 중요합니다.”라고 그는 말합니다.

CloudnativePG의 다음 단계는 무엇인가요?


패널은 다음과 같이 예정된 Kubernetes의 향후 기능 및 개발 계획에 대해 논의했습니다:

  • CNPG-I 인터페이스: 팀은 CloudNativePG 운영자에 대한 타사 확장을 가능하게 하는 플러그형 인터페이스를 개발 중입니다.
  • Postgres 17 지원 및 퍼블리싱 및 구독 지원 강화, 논리적 복제를 사용하여 Postgres 데이터베이스를 Kubernetes로 쉽게 가져올 수 있게 함.
  • Kubernetes 컨테이너 스토리지 인터페이스(CSI)의 발전을 활용하여 백업 및 복원 기능 개선.
  • 크기 조정에서 복구 기능이 베타로 전환됨
  • 볼륨 그룹 스냅샷 기능이 베타로 전환됨
  • 컨테이너 오브젝트 스토리지 인터페이스(COSI) 발전


AI 통합 및 DBaaS 진화


데이터 온 쿠버네티스 커뮤니티의 디렉터인 멜리사 로건은 다음과 같은 중요한 개발 사항을 간략하게 설명했습니다:


본문: Running Postgres in Kubernetes: The Shift from ‘Why’ to ‘How’

EDB 영업 기술 문의: 02-501-5113

이메일: salesinquiry@enterprisedb.com

홈페이지 문의하기