728x90
✅ 개요
Kubernetes 환경에서 MySQL을 실행하려면 Helm Chart를 활용하는 것이 가장 효율적인 방법입니다. 이 글에서는 Bitnami MySQL Helm Chart를 사용하여 MySQL을 배포하는 방법을 설명합니다. 특히, Airflow 네임스페이스에 MySQL을 배포하고 비밀번호를 airflow로 설정하는 과정을 다르립니다.
✅ 1. Helm 저장소 추가 및 업데이트
먼저, Bitnami Helm Chart 저장소를 추가하고 최신 상황으로 업데이트합니다.
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
✅ 2. MySQL Helm Chart 설치
다음 명령어를 실행하여 MySQL을 airflow 네임스페이스에 설치합니다.
helm install airflow-mysql bitnami/mysql \
--namespace mysql \
--create-namespace \
--set auth.rootPassword=mysql1234 \
--set auth.username=mysqluser \
--set auth.password=mysql1234 \
--set auth.database=airflow \
--set primary.persistence.enabled=true \
--set primary.persistence.size=8Gi \
--set primary.service.type=ClusterIP
🔹 설치 명령어 설명
- --namespace mysql → Airflow 네임스페이스에 설치
- --create-namespace → 네임스페이스가 없을 경우 자동 생성
- auth.rootPassword=airflow → MySQL root 계정 비밀번호를 airflow로 설정
- auth.username=airflow, auth.password=airflow → MySQL 사용자 계정 및 비밀번호를 airflow로 설정
- auth.database=airflow → Airflow용 기본 데이터베이스 생성
- primary.persistence.enabled=true → 데이터가 영구 저장되도록 설정
- primary.persistence.size=8Gi → Persistent Volume 크기 8GiB 설정
- primary.service.type=ClusterIP → 내부에서만 접근 가능하도록 설정
✅ 3. 설치 확인
🔹 3-1. MySQL Pod 확인
kubectl get pods -n airflow
출력 예시:
NAME READY STATUS RESTARTS AGE
airflow-mysql-0 1/1 Running 0 1m
👉 Pod가 Running 상황이면 정상 설치 완료!
🔹 3-2. MySQL 서비스 확인
kubectl get svc -n airflow
출력 예시:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
airflow-mysql ClusterIP 10.106.255.91 <none> 3306/TCP 2m
👉 MySQL 서비스가 정상적으로 실행 중인지 확인!
🔹 3-3. MySQL 내보 접근 테스트
kubectl exec -it airflow-mysql-0 -n airflow -- mysql -u airflow -p
비밀번호 입력:
Enter password: airflow
이후, MySQL 내보에서 데이터베이스 확인:
SHOW DATABASES;
출력 예시:
+--------------------+
| Database |
+--------------------+
| airflow |
| information_schema |
| mysql |
| performance_schema |
+--------------------+
👉 airflow 데이터베이스가 존재하면 정상 설치 완료! 🎯
✅ 4. MySQL Helm 설치 과정 정보
단계명령어설명
1. Helm 저장소 추가 | helm repo add bitnami ... | Bitnami Helm Chart 저장소 추가 |
2. Helm Chart 업데이트 | helm repo update | 최신 채팅 업데이트 |
3. MySQL 설치 | helm install airflow-mysql ... | MySQL Helm Chart 설치 |
4. Pod 상황 확인 | kubectl get pods -n airflow | MySQL Pod 실행 확인 |
5. 서비스 확인 | kubectl get svc -n airflow | MySQL Service 실행 확인 |
6. 내보 접근 테스트 | kubectl exec -it airflow-mysql-0 ... | MySQL CLI 접근 및 데이터베이스 확인 |
728x90
'Data Engineering > Data Infra & Process' 카테고리의 다른 글
[4편] PostgreSQL을 Vector Database로 활용하기 (pgvector 설정 및 사용) (0) | 2025.03.07 |
---|---|
[3편] PostgreSQL 사용자(Role) 추가 및 수동 관리 (SQL 쿼리 방식) (0) | 2025.03.07 |
[2편] Helm values.yaml을 활용한 PostgreSQL 사용자(Role) 추가 및 관리 (0) | 2025.03.07 |
[1편] Kubernetes에 Helm & ArgoCD를 사용한 PostgreSQL 설치 (0) | 2025.03.07 |
ETL(Extract, Transform, Load)이란? 데이터 처리의 핵심 개념 완벽 정리! (0) | 2025.02.23 |