1. 카프카 ❤️🩹 쿠버네티스 환경에서 운영
<aside>
🙆🏻 쿠버네티스 운영 팀이 있고, 쿠버네티스의 장점을 잘 활용 할 수 있다면, 충분한 검토를 통해 데이터베이스 운영을 검토해보시기를 권장합니다
</aside>
개인 의견 : 별도의 쿠버네티스를 운영하는 팀(보통 플랫폼 팀 혹은 DevOps팀)이 있다면 추천
- 기존에 베어메탈 혹은 가상머신(VM) 기반에서 잘 운영하고 있다면, 기존 환경을 그대로 사용하는 것을 추천
- 회사에 쿠버네티스를 운영하고 있고 쿠버네티스 운영 경험 지식이 있는 팀이 있고 팀 협조가 잘 된다면 그제서야 검토를 시작해도 좋음
- 쿠버네티스가 가지고 있는 장점을 알고 해당 장점을 카프카에 잘 결합(활용)해서 사용할 수 있고, 장애 발생 시 대응할 수 있는 검토(PoC, 테스트)가 필수
- 실제 운영하게 되면 플렛폼팀과 R&R에 대한 부분들을 잘 협의하고, 특히 모니터링과 로깅 및 알람 등 운영에 필요한 다양한 방법들을 잘 구성할 것
1.1 데이터베이스 운영 사례
국내 : 카카오, 데브시스터즈 등
- 카카오if 2020 (발표자도 DB를 컨테이너로 운영하게 될 줄 몰랐다) - 링크
- [if (kakao)] 쿠버네티스 레디스 클러스터 구축기 - 링크 Blog
- [NDC21-프로그래밍] 데브시스터즈 - 게임 서버를 품은 쿠버네티스 (용찬호) - 링크
- [K8S Korea Group] SPK - MariaDB Galera Cluster on Kubernetes - 링크
해외 : DoK Community - 링크 Youtube Dok Day Europe 2020
DoK_Report_2021.pdf
왜?
- 이미 온프레이스 환경보다 클라우드 환경에서 운영되는 데이터베이스의 비중이 높음
- 데이터베이스 운영 관리 시 단순 반복 작업은 오퍼레이터 패턴으로 자동화 가능
- 데이터베이스를 DBaaS Database as a Service 서비스 형태로 제공 가능
- 이벤트가 있을때 트래픽이 폭증 시 데이터베이스 자체도 스케일 인/아웃 되어서 대응
- 쿠버네티스 플랫폼의 다양한 기능들을 사용 할 수 있음 - 서비스 메쉬, GitOps 등
- 네트워크 성능, 스토리지 I/O 성능에서 문제가 없다 → 물론 쿠버네티스에 대한 최적화 기술 지식이 필요
- 데이터베이스 인프라를 코드로 쉽게 배포 삭제 할 수 있음
- 컴퓨팅(서버) 리소스를 효율적으로 사용
2. 쿠버네티스 소개
아키텍처 : K8S 클러스터는 Controle Plane(마스터)와 Node(노드)로 구성 - 링크

2.1 바라는 상태 Desired State - 링크 링크2
소개 : 특정 리소스의 바라는(원하는) 상태를 선언하면, 컨트롤러가 해당 리소스를 지속적으로 모니터링해서 차이점이 발견 시 조치(작업)를 통해 다시 바라는 상태가 되게함
- 쿠버네티스에서 바라는 상태란 사용자가 생각하는 최종 애플리케이션 배포 상태를 말합니다.

실습 영상
