쿠버네티스 Innodb 클러스터 설치 참고 문헌
https://dev.mysql.com/doc/mysql-operator/en/mysql-operator-preface.html
Opeartor이란?
정의 ( feat: kubernetes.io )
- 오퍼레이터(Operator)는 사용자 정의 리소스를 사용하여 애플리케이션 및 해당 컴포넌트를 관리하는 쿠버네티스의 소프트웨어 익스텐션이다. 오퍼레이터는 쿠버네티스 원칙, 특히 컨트롤 루프를 따른다.
- 사용자 정의 리소스를 사용해서 쿠버네티스 요소들을 관리하는 역할을 한다는 것
- Operator 패턴은 기존 Kubernetes에서 관리할 수 없었던 것들을 오퍼레이터라는 요소의 추가로 관리의 범위를 사용자 정의 리소스까지 확장해 관리성과 자동화를 향상하도록 등장한 개념입니다.
Mysql Operator이란?
- Mysql DB를 Operator 패턴으로 운영함
- Mysql-operator는 쿠버네티스 mysql서버와 mysql 라우터로 구성되며 mysql innodb 클러스터를 관리함. mysql-operator는 쿠버네티스 클러스터에서 실행되고 mysql operator를 사용하여 쿠버네티스에 배포할 수 있음. // 공식 도큐먼트
- Mysql operator가 추상화해서 관리하는 오브젝트는 바로 Mysql InnoDB 클러스터
- Mysql Operator는 Mysql 서버와 Mysql 라우터로 이루어진 Mysql InnoDB 클러스터
- Mysql operator는 InnoDB 클러스터라는 추상화된 사용자 정의 리소스로 Mysql 서버와 라우터들의 관리를 자동화하고 간편하게 만들어주는 역할을 함
Mysql Router
- mysql 클러스터 중 작업을 실행할 서버를 고르는 stateless 애플리케이션.
- DB인스턴스를 캐싱하여 라우팅할 인스턴스를 관리함.
- 클러스터의 replicas 개수를 조절하는 것으로 수평적 확장이 가능함.
Mysql Server Instances
- 실제 DB 역할을 하게 되는 서버 인스턴스 그룹.
- **Single-Primary mode(Master-slave)**와 Multi-Primary mode(Group-Replication // 모든 인스턴스가 Primary로 동작함) 2가지 모드가 존재함
Mysql-operator
- 위의 서버와 라우터들을 관리하는 operator
- Deployment로 관리됨.
- InnoDBcluster, Mysqlbackup 등의 사용자 정의 리소스를 통해 각각 서버 클러스터와 서버 백업을 추상화해 관리함,
Install
mysql endpoint : mycluster.mysql-operator.svc.cluster.local:3306
user : root
password : sakila
mysql-operator crds
kubectl apply -f https://raw.githubusercontent.com/mysql/mysql-operator/trunk/deploy/deploy-crds.yaml
mysql-operator
kubectl apply -f https://raw.githubusercontent.com/mysql/mysql-operator/trunk/deploy/deploy-operator.yaml
Innodbcluster secret
kubectl create secret generic ${secretName} \ --from-literal=rootUser=${userName} \ --from-literal=rootHost=% \ --from-literal=rootPassword="${password}
Mysql-innodb-cluster
apiVersion: mysql.oracle.com/v2 kind: InnoDBCluster metadata: name: mycluster spec: secretName: mypwds tlsUseSelfSigned:
true
instances: 3 router: instances: 1
Test
kubectl run --rm -it myshell --image=mysql/mysql-operator — /bin/bash
mysqlsh
fqdn
\connect root@${cluster-name}.${namespace}.svc.cluster.local:3306
Please provide the password for 'root@mycluster.mysql-operator.svc.cluster.local:3306':
시크릿에서 생성한 비밀번호 입력
Failover test // 잘 됨.
- Mysql router가 잘 동작하는 것을 볼 수 있다.
쿠버네티스 Innodb 클러스터 설치 참고 문헌
https://dev.mysql.com/doc/mysql-operator/en/mysql-operator-preface.html
'MySQL' 카테고리의 다른 글
MySQL Operator 구조 - Router, Instance, Operator (0) | 2022.12.12 |
---|