반응형
URL: https://if.kakao.com/2020/session/75
MySQL on Kubernetes: 발표자도 데이터베이스를 컨테이너로 운영하게 될 줄 몰랐다
DBaaS 환경의 Mysql
→ 전통적인 방식(PM, VM)에서 벗어나 클라우드 데이터베이스를 쿠버네티스로 제공하기 위해
DBaaS란?
→ 데이터베이스를 서비스로 제공하는 것(ex. RDS, Aurora)
- 필요 리소스가 없음
- 설치 시간이 적음
- Database 전문 지식까지는 필요하지 않다.
- MSA 환경에서 세분화 된 DB로 변화에 적합하다.
컨테이너 위에서의 DBaas는?
- OS를 제외한 DB만으로 빠르게 구성하고 효율적으로 리소스를 사용할 수 있다.
- 생성시간이 매우 적다.
- 클라우드 환경에서 더 쉽게 더 자주 데이터베이스를 요청하는데 적합하다.
- 대규모 DB에서 성능 차이가 크게 발생할 것이다.
왜 쿠버네티스인가?
- VM 대비 높은 리소스 관리 효율
- 쿠버네티스 자체가 기본 os가 되어가는 중이다.
- 큰 장애 이슈가 없다.
앞으로의 방향성
- 자동화 : 반복적인 모든 것을 자동화 가능하도록(← 자동 백업, 자동 복구 등)
- 고급 기능: DBA가 없이도 무중단 스키마 변경등의 고급기능을 지원하도록 해야한다.
- 이기종 DB 마이그레이션 기능, 빅데이터, 확장기능 등이 필요하다.(Not just MySQL)
Architecture
- 멱등성 : 여러번 같은 연산을 실행해도 결과가 달라지지 않는 성질
- 선언적 API: Object(객체)는 Application 또는 Infra 구성을 정의한다. API는 정확한 상태가 아니라 의도한 상태를 나타낸다.
- CRD
Controller
- 이벤트 실행 중간에 이벤트가 실패할 가능성도 있으므로, controller는 멱등성을 가지도록 구현해야 하다.
HA
- Replica를 구성해야 하며, (A,B,C) healthcheck에 따른 HA 구성이 필요하다.
Database 구조
- yaml 파일작성 후 Helm으로 InstanceSet 생성한다.
- 각 인스턴스에는, 실제 데이터베이스 pod와 데이터베이스의 성능데이터를 수집하는 mysql Exporter pod가 페어 단위로 생성 됨
- 성능수집(healthcheck)을 위한 vm을 따로 구성할 필요 X( 추가작업이 필요 없음)
- 프로메테우스에 적재하여 모니터링 시 이용 가능
- Primary 서비스와 Standby 서비스로 나누어진다.
- Primary: HA구조에서 항상 Source(main) DB를 바라본다.
- Standby: HA구조에서 항상 Replica DB를 바라봄 , Read io 분산이 가능MySQL on Kubernetes: 발표자도 데이터베이스를 컨테이너로 운영하게 될 줄 몰랐다
'Kubernetes' 카테고리의 다른 글
'쿠버네티스에 레디스 캐시 클러스터 구축기' 카카오 테크 내용 정리 (0) | 2023.08.12 |
---|---|
Kubernetes : mysql-operator 개념 (0) | 2023.08.12 |
Kubernetes : Statefulset/Headless 개념 (0) | 2023.08.12 |
Kubernetes: 스토리지/네트워크 (0) | 2023.08.10 |