본문 바로가기
Kubernetes

Kubernetes : mysql-operator 개념

by SE_123 2023. 8. 12.
반응형

01. Operator 패턴이란

operator: 쿠버네티스에서 사용자 정의 리소스를 사용해서 쿠버네티스 요소들을 관리하는 역할

  • 기존 쿠버네티스가 관리하지 못했던 것들을 관리할 수 있게 하기 위해 사용한다.
  • 이벤트 발생시 실제 쿠버네티스 오브젝트를 조절하는 역할
  • 관리성과 자동화 향상
  • 현재 사용 가능한 Operator들의 모음은 Operatorhub.io 사이트에서 확인 가능하다.
  • Capability level이란 Operator 기술의 성숙도(Basic Install -> Seamless Upgrades -> Full Lifecycle -> Deep Insights -> Auto Pilot)

 

02. Mysql Operator란

mysql operator의 공식 도큐먼트: https://dev.mysql.com/doc/mysql-operator/en/

  • operatorhub.io에 등록되어 있지 않기 때문에 성숙도를 확인할 수는 없음(but, Orale Mysql이 직접 운영하는 Operator)
  • Mysql 서버와 Mysql 라우터로 이루어진 Mysql InnoDB 클러스터를 관리
  • Mysql 서버와 라우터들의 관리를 자동화하고 간편하게 만들어주는 역할

1) Mysql Router

Mysql Router: Mysql 서버들 중 작업을 실행할 서버를 고르는 상태비저장(Statless) 애플리케이션

  • Deployment로 관리된다.
  • DB 인스턴스를 캐시하여 라우팅할 인스턴스를 관리
  • 클러스터의 스케일에 따라 Deployment의 레플리카 개수를 조절하는 것으로 수평적 확장(Horizontal scaling) 가능

2) Mysql Server instances

Mysql Server instances : 실제 DB역할을 하게 되는 서버 인스턴스의 그룹

  • Replicaset로 관리된다.
  • Single-Primary mode와 Multi-Primary mode라는 2가지 Replication 모드 중 하나의 클러스터 복제방식 사용한다.
  • Multi-Primary mode는 Mysql 8.0 버전에 등장한 Group Replication복제 방식을 사용해 단방향 복제가 아닌 양방향 복제를 수행 가능하다.

3) Mysql Operator

Mysql Operator: Mysql 서버와 Mysql 라우터들을 관리하는 Operator

  • Deployment로 관리된다.
  • Operator가 InnoDBCluster, Mysqlbackup 등의 사용자 정의 리소스를 통해 각각 서버 클러스터와 서버 백업을 추상화해 관리한다.