Ssoon
오퍼레이터 & MySQL 오퍼레이터 (6) - MySQL Operator for Kubernetes 실습 - 1 본문
Database Operator In Kubernetes study
오퍼레이터 & MySQL 오퍼레이터 (6) - MySQL Operator for Kubernetes 실습 - 1
구구달스 2022. 6. 6. 23:57CloudNet@ 팀의 가시다님이 진행하는 Database Operator In Kubernetes study 스터디 중 MySQL Operator for Kubernetes 설치 및 부하분산 내용에 대해 정리하였습니다.
MySQL Operator for Kubernetes
쿠버네티스 클러스터로 MySQL InnoDB Cluster 관리
- MySQL Operator for Kubernets : 1개 이상의 MySQL InnoDB Cluster를 관리합니다.
- MySQL InnoDB Cluster : 쿠버네티스 API 서버를 통해서 관련 리소스를 배포합니다.
- StatefulSet : MySQL Server instances - MySQL 서버
- Deployment : MySQL Routers - Proxy 역할로 애플리케이션의 쿼리를 서버에 전달, RW/RO
- Service : MySQL Router, 개별 MySQL 서버로 접속 주소 생성 (Headless 서비스, SRV 레코드)
- MySQL Shell : MySQL Router 와 MySQL Server 에 툴 포함
※ MySQL Shell 8.0
MySQL Shell은 MySQL용 고급 클라이언트 및 코드 편집기입니다.
https://dev.mysql.com/doc/mysql-shell/8.0/en/
Kubernetes Operational View
실습 모니터링과 확인을 위해 여러 Kubernetes Operational View 을 설치합니다.
설치방법 : https://codeberg.org/hjacobs/kube-ops-view
MySQL Operator for Kubernetes
MySQL Operator for Kubernetes 을 설치합니다.
설치방법 : https://github.com/mysql/mysql-operator
- MySQL InnoDB 클러스터를 설치합니다.
- 접속을 위해 접속정보에 대한 변수를 지정합니다.
MIC=mycluster.mysql-cluster.svc.cluster.local # MYSQL 라우터입니다
MDB1=mycluster-0.mycluster-instances.mysql-cluster.svc.cluster.local
MDB2=mycluster-1.mycluster-instances.mysql-cluster.svc.cluster.local
MDB3=mycluster-2.mycluster-instances.mysql-cluster.svc.cluster.local
MYSQLIP=$(kubectl get svc -n mysql-cluster mycluster -o jsonpath={.spec.clusterIP})
- 마스터 노드에서 mariadb-client 설치 후 MySQL 라우터에 접속을 확인합니다.
https://mariadb.com/docs/connect/clients/mariadb-client/
- MySQL 라우터에서 MySQL 파드로 접속을 확인합니다.
- 샘플 데이터베이스를 복제합니다.
- 데이터베이스를 생성한 후 확인합니다.
- 라우터 설정을 확인합니다.
- 캐시 정보를 확인합니다.
- 테스트를 위해 pod를 배포합니다.
MySQL 라우터를 통한 쿼리 부하분산을 확인합니다. (Single-Primary 모드)
- MySQL 라우터정책이 first-available 라서 모두 프라이머리로 전달됩니다.
- pod에서 mysql 라우터로 6446로 접속을 확인합니다.
- 부하분산이 되지 않습니다.
- pod에서 mysql 라우터로 6447로 접속을 확인합니다.
- 부하분산(round-robin) 됨을 확인할 수 있습니다.
- MySQL 에서 해당 부하분산에 관한 정책을 확인합니다.
- 싱글 프라이머리 모드로 하나의 마스터에 두개의 세컨더리로 작동중입니다.
- 6446으로 쿼리를 보내면 부하분산이 되지 않으며, 6447로 쿼리를 보내면 두대의 세컨더리 (mycluster1 과 2) 로 라운드로빈 방식으로 부하분산되는 정책을 확인할 수 있습니다.
- 데이터베이스에 정보를 추가합니다.
- 마스터 노드에서 test 데이터베이스에 데이터를 삽입 한 후 복제를 확인합니다.
'Database Operator In Kubernetes study' 카테고리의 다른 글
오퍼레이터 & MySQL 오퍼레이터 (6) - MySQL Operator for Kubernetes 실습 - 3 (1) | 2022.06.07 |
---|---|
오퍼레이터 & MySQL 오퍼레이터 (6) - MySQL Operator for Kubernetes 실습 - 2 (0) | 2022.06.07 |
오퍼레이터 & MySQL 오퍼레이터 (5) - MinIO Operator 실습 (0) | 2022.06.02 |
오퍼레이터 & MySQL 오퍼레이터 (4) - CR & CRD 실습 (0) | 2022.06.02 |
오퍼레이터 & MySQL 오퍼레이터 (3) - Operator 추가 (0) | 2022.06.02 |
Comments