본문 바로가기
문서 목차
ORKESTRIX설치

MySQL

애플리케이션 데이터베이스 MySQL 인스턴스를 생성하고, 웹 기반 관리 도구( phpMyAdmin )로 데이터를 조회·관리할 수 있게 합니다.

QUANTUM C&S

애플리케이션 데이터베이스 MySQL 인스턴스를 생성하고, 웹 기반 관리 도구(phpMyAdmin)로 데이터를 조회 · 관리할 수 있게 합니다.

설정값

inventory/qks/group_vars/all/all-k8s.yaml:

qks_mysql_enabled: true
qks_mysql_version: 8.4.11
qks_mysql_default_user_name: qks
qks_mysql_default_user_database: qks
qks_mysql_storage_size: 50Gi

qks_mysql_admin_version: 5.2.3
qks_mysql_admin_fqdn: "mysql-db.{{ kube_default_domain }}"

실행

./install.sh ubuntu plays/qks-mysql.yaml

설치 흐름

./install.sh ubuntu plays/qks-mysql.yaml
  ├─ 1. 관리 UI 접속 도메인을 각 노드 /etc/hosts에 등록
  ├─ 2. MySQL 매니페스트 템플릿 생성
  ├─ 3. MySQL 매니페스트 적용 (StatefulSet+Service+Secret, 공식 mysql 이미지, 내장 PVC로 데이터 보관)
  ├─ 4. phpMyAdmin 매니페스트 템플릿 생성
  └─ 5. phpMyAdmin 매니페스트 적용 (Deployment+Service+Ingress, 공식 phpmyadmin/phpmyadmin 이미지)
Bitnami의 관련 이미지가 유료 구독 전용으로 전환되어, 헬름 차트 대신 직접 작성한 매니페스트(공식 이미지)로 배포합니다. 고가용성(다중 인스턴스) 구성이 필요한 경우는 별도 항목으로 안내됩니다.

설치 확인

kubectl get pods -n <qks_mysql_namespace>

MySQL, phpMyAdmin 파드가 모두 Running이어야 합니다.

실제 동작 확인

MySQL이 실제로 응답하고 데이터를 관리할 수 있는지 확인합니다:

kubectl exec -n <qks_mysql_namespace> qks-mysql-0 -- \
  mysqladmin ping -h 127.0.0.1 -uroot -p"<qks_mysql_admin_pass>"

kubectl exec -n <qks_mysql_namespace> qks-mysql-0 -- \
  mysql -u <qks_mysql_default_user_name> -p"<qks_mysql_default_user_pass>" <qks_mysql_default_user_database> -e "
CREATE TABLE IF NOT EXISTS gs_test (id INT PRIMARY KEY, msg VARCHAR(50));
INSERT INTO gs_test VALUES (1, 'hello');
SELECT * FROM gs_test;
DROP TABLE gs_test;
"

mysqld is alive와 함께 hello 값이 정상 조회되면 인스턴스 생성 · 데이터 관리 기능 모두 정상입니다.

phpMyAdmin도 확인합니다:

kubectl run curltest --rm -i --image=curlimages/curl --restart=Never -- \
  curl -s -i http://qks-mysqladmin.<qks_mysql_namespace>.svc.cluster.local:80/

<title>phpMyAdmin</title>와 로그인 폼이 포함된 HTML이 반환되면 정상입니다.

클러스터 노드에서는 https://<qks_mysql_admin_fqdn>/으로 접속해 같은 로그인 화면을 확인합니다(설치 과정에서 각 노드의 /etc/hosts에 이 FQDN이 자동 등록됩니다). 클러스터 외부의 실제 사용자가 접속하려면, 이 FQDN이 클러스터 로드밸런서 주소를 가리키도록 별도 DNS 등록이 필요합니다.

다음 단계