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

MariaDB

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

QUANTUM C&S

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

설정값

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

qks_mariadb_enabled: true
qks_mariadb_version: 28.0.3
qks_mariadb_default_user_name: qks
qks_mariadb_default_user_database: qks
qks_mariadb_storage_size: 50Gi

qks_mariadb_admin_version: 5.2.3
qks_mariadb_admin_fqdn: "db.{{ kube_default_domain }}"

실행

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

설치 흐름

./install.sh ubuntu plays/qks-mariadb.yaml
  ├─ 1. 관리 UI 접속 도메인을 각 노드 /etc/hosts에 등록
  ├─ 2. Helm 저장소 등록 ('bitnami')
  ├─ 3. 네임스페이스 생성
  ├─ 4. DB 초기화용 ConfigMap 템플릿 생성 · 적용
  ├─ 5. Helm으로 MariaDB 배포 (bitnami/mariadb 차트, 내장 PVC로 데이터 보관)
  ├─ 6. NodePort로 외부(30306) 접속 경로 개방(Service 패치)
  ├─ 7. my.cnf에 max_connections/타임존 설정 반영 후 StatefulSet 재시작
  ├─ 8. phpMyAdmin 매니페스트 템플릿 생성
  └─ 9. phpMyAdmin 매니페스트 적용 (Deployment+Service+Ingress, 공식 phpmyadmin/phpmyadmin 이미지)
phpMyAdmin은 Bitnami의 관련 이미지가 유료 구독 전용으로 전환되어, 헬름 차트 대신 직접 작성한 매니페스트(공식 phpMyAdmin 이미지)로 배포합니다.

설치 확인

kubectl get pods -n <qks_mariadb_namespace>

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

실제 동작 확인

phpMyAdmin이 실제로 응답하는지 확인합니다:

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

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

데이터 관리(생성 · 조회)까지 확인합니다:

kubectl exec -n <qks_mariadb_namespace> qks-mariadb-0 -- \
  mysql -u <qks_mariadb_default_user_name> -p"<qks_mariadb_default_user_pass>" <qks_mariadb_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;
"

hello 값이 정상 조회되면 데이터 관리 기능도 정상입니다.

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

다음 단계