쿠버네티스 데이터베이스 오퍼레이터 스터디 2기(DOIK2) 마치며... 평소 커뮤니티들을 눈팅하면서 CloudNet@팀의 가시다님이 주관하시는 스터디에 존재에 대해서는 알고 있었다. 하지만, 소문대로의 스터디여서 그런지 항상 뒤늦게 신청 공고를 보았을 때는 이미 신청이 마감되었다. 그러던 중 이번에 운좋게 스터디에 참여할 수 있게 되었다. 외부 스터디는 처음이기도 해서 긴장되기도 하고, 잘하는 사람이 많을 것 같아서 내가 잘 따라갈 수 있을까 하는 걱정도 되었다. 2023.10.15 ~ 2023.11.26, 약 6주의 기간 동안 일주일에 한 번 2시간가량 온라인으로 모여 스터디가 진행되었다. 매 주차 관련 내용을 정리하여 개인 블로그에 포스팅하여 외부에 공개하는 것이 였고, 못할 시, 스터디에서 제외되었..
Kubernetes/Database Operator
Stackable Data Platform (SDP) 란? Stackable은 쿠버네티스 환경에서 데이터 관련 애플리케이션들을 손쉽게 배포 관리해 주는 오퍼레이터입니다. https://docs.stackable.tech/home/stable/ Stackable Documentation :: Stackable Documentation Welcome to Stackable! This documentation gives you an overview of the Stackable Data Platform, how to install and manage it as well as some tutorials. Introduction The Stackable Data Platform allows you to deplo..
Kafka 및 Strimzi 소개 kafka는 대량의 데이터를 안정적이고 실시간으로 처리하는 데 사용되는 분산형 스트리밍 플랫폼입니다. 이벤트 스트림 등을 효과적으로 처리하고 , 데이터를 여러 시스템 간에 안전하게 전송할 수 있도록 지원합니다. 카프카는 주요 요소는 다음과 같다. 주키퍼 ZooKeeper : 카프카의 메타데이터 관리 및 브로커의 정상 상태 점검 health check 을 담당 카프카 Kafka 또는 카프카 클러스터 Kafka cluster : 여러 대의 브로커를 구성한 클러스터를 의미 브로커 broker : 카프카 애플리케이션이 설치된 서버 또는 노드를 말함 프로듀서 producer : 카프카로 메시지를 보내는 역할을 하는 클라이언트를 총칭 컨슈머 consumer : 카프카에서 메시지를 ..
Percona Server for MongoDB 개요 오늘 소개할 데이터베이스 오퍼레이터는 percona 사에서 만든, Percona Server for MongoDB이다. 이름이 길어 PSMDB라고 하겠다. https://docs.percona.com/percona-server-for-mongodb/6.0/comparison.html NoSQL 데이터베이스인 MongoDB 6.0을 기반으로 만들어졌으며, CE(Community Edtion) 외의 추가적인 기능들을 제공한다. Installing Percona Server for MongoDB - 링크 Percona Memory Engine - 링크 Hot Backup - 링크 Authentication - 링크 HashiCorp Vault integra..
CNPG(CloudNative PG)란? PostgreSQL Operator로 Operator Hub에서도 최고 레벨 5 AutoPilot 엄청나게 단계에 있는 완성도 있는 오픈소스이다 이름에서도 알 수 있듯이 Cloud Natvie 하게 동작하며 아래와 같은 기능들을 제공하며 운영에 필요한 대부분의 것들을 자동화하였음 Main features Direct integration with Kubernetes API server for High Availability, without requiring an external tool Self-Healing capability, through: Planned switchover of the primary instance by promoting a selected..
1. 개요 부끄럽지만, innoDB 클러스터라는 이름을 처음 들었을 때, 되게 낯설었고, 다른 DBMS 종류의 클러스터인 줄 알았는데, MySQL에서 고가용성을 위해 만든 서비스라고 한다. 왠지 반가웠다. MySQL에서 기본적으로 사용하는 innoDB 스토리지 엔진을 기반으로 동작한다고 해서 innoDB Cluster라는 이름이 붙여졌다고 한다. 사내의 개발환경에서는 데이터베이스를 컨테이너로 사용하고 있지만, 운영환경만큼은 아니었다. 개발 환경내에서 데이터베이스를 컨테이너로 사용해 보면서, 가용성 측면이나 자동화 등 좋은 부분들이 정말 많았지만 가장 중요한 데이터 안정성 등을 보장하기가 어려웠고 불안했다. 하지만 이번 innoDB Cluster를 공부해보면서 어쩌면 DB를 컨테이너로 도입에 하는데 한 걸..
쿠버네티스 오퍼레이터란? ( Kubernetes Operator ) 먼저 오퍼레이터를 이해하기 위해서는 쿠버네티스의 동작흐름과 몇 가지 개념을 알 필요가 있다. 왜냐하면 오퍼레이터는 쿠버네티스가 동작 흐름을 기반으로 동작하기 때문이다. 쿠버네티스는 다음과 같은 두 가지 접근법이 존재한다. 명령형(Imperative) - shell을 통해 kubectl과 같은 커맨드라인으로 오브젝트를 핸들링하는 방식이다. 선언형(Declarative) - yaml과 같은 파일에 오브젝트를 정의하고 apply로 생성하는 방식이다. 사용자는 두 접근방식으로 명시적인 애플리케이션 상태를 설정하면 쿠버네티스의 컨트롤러들은 지속적으로(컨트롤 루프) 리소스들을 감시하고 current state(현재 상태) -> desired sta..
평소에 말로만 듣던 가시다님의 쿠버네티스 스터디를 운 좋게 참여하게 되었다. 마침 사내에서 DB를 컨테이너화를 고려하기도 했었고, 평소 오퍼레이터에 관심을 가지어 더욱 더 기대가 되었다. 이번 포스팅에는 1주차 스터디를 진행하면서 평소에 애매하게 알고만 있었던 스테이트풀셋을 정리해본다. Stateful vs Stateless 위 사진은 Stateful과 Stateless한 파드를 표현한 너무나도 유명한 그림이다. 우리가 애완동물에 기르면서 이름(고유한 식별자)를 붙이고, 가축과 같은 경우에는 굳이 이름을 붙이지 않는다. 즉, State의 유뮤는 사용하는 목적에 맞게 고유한 식별자를 부여하여 상태를 유지하거나, 또는 상태를 저장하지 않는 것이다. ( 일반적으로 웹서버와 같은 경우 stateless, 데이터..