728x90
✅ 목표: 로컬 환경(Docker Desktop Kubernetes)에 MinIO를 Helm으로 설치하고, 기본 버킷을 생성하여
S3 호환 오브젝트 스토리지를 쿠버네티스에서 직접 운영할 수 있는 기반을 마련합니다.
🔎 이번 글에서 수행할 작업 요약
- Helm 저장소 추가 및 MinIO 설치
- PVC와 서비스 등 MinIO 리소스 확인
- 기본 버킷 생성 (mc CLI 사용)
- Helm uninstall 테스트로 상태 복원 확인
🧱 1단계: Helm 저장소 추가 및 MinIO 설치
이 단계의 목적: Helm 차트를 사용하여 MinIO를 빠르게 설치하고,
Kubernetes에서 사용하는 리소스(Pod, PVC, Service 등)가 자동으로 생성되는 구조를 이해합니다.
# Bitnami Helm 저장소 추가
helm repo add bitnami https://charts.bitnami.com/bitnami
# 저장소 업데이트
helm repo update
# MinIO 설치 (Namespace 포함)
helm install minio bitnami/minio \
--namespace minio --create-namespace \
--set auth.rootUser=minioadmin \ # 🔐 기본 사용자 설정
--set auth.rootPassword=minioadmin \ # 🔐 기본 비밀번호 설정
--set defaultBuckets=my-bucket1,my-bucket2 \ # 📦 기본 버킷 설정
--set service.type=LoadBalancer # 🌐 외부 접근을 위한 LoadBalancer 서비스
✅ 설치 후 LoadBalancer 타입의 Service가 생성되어, 브라우저에서 UI 접근이 가능해집니다.
🔍 2단계: MinIO 설치 리소스 확인
이 단계의 목적: Helm 설치 이후 생성된 리소스(Pod, PVC, SVC 등)를 확인하여
어떤 구성 요소들이 자동으로 구성되는지를 파악합니다.
# Pod 상태 확인
kubectl get pod -n minio
# PVC 상태 확인
kubectl get pvc -n minio
# 서비스 확인
kubectl get svc -n minio
예시 출력:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
minio LoadBalancer 10.96.x.x 127.0.0.1 9000:31234/TCP 1m
🔍 브라우저에서 http://<EXTERNAL-IP>:9000 으로 MinIO UI 접속 가능
📦 3단계: 기본 버킷 구성 확인 및 파일 업로드 테스트
이 단계의 목적: Helm Chart에서 지정한 defaultBuckets 값이 실제로 생성되었는지 확인하고,
S3 호환 CLI인 mc를 사용해 파일을 업로드해 봅니다.
# MinIO Client 설치 (macOS 기준)
brew install minio/stable/mc
# MinIO 서버 연결 설정
mc alias set local http://<EXTERNAL-IP>:9000 minioadmin minioadmin
# 버킷 목록 확인
mc ls local
# 로컬 파일 업로드
mc cp ~/Downloads/test.csv local/my-bucket1/test.csv
# 업로드 파일 확인
mc ls local/my-bucket1
✅ 위 명령으로 실제 S3처럼 객체 업로드 및 확인이 가능합니다.
♻️ 4단계: 설치 복원 테스트 (Uninstall)
이 단계의 목적: Helm으로 설치한 MinIO 리소스를 완전히 제거하고,
필요 시 다시 설치하거나 PVC만 유지할 수 있는지 실험합니다.
# MinIO 삭제
helm uninstall minio -n minio
# 네임스페이스 유지한 채 PVC 확인
kubectl get pvc -n minio
📌 기본적으로 Helm uninstall 시 PVC는 삭제되지 않으므로,
재설치 시 같은 데이터를 사용할 수 있습니다.
728x90