Data Engineering/s3 minio

📘 [MinIO & Cilium 기반 오브젝트 스토리지 연동 시리즈 #2] Helm Chart 기반 MinIO 커스터마이징 실습

ygtoken 2025. 3. 26. 17:30
728x90

목표: MinIO를 Helm으로 배포할 때, values.yaml을 수정해 커스터마이징을 적용하고
로깅, 리소스 제한, 버킷 설정 등을 자신에게 맞게 구성하는 방법을 실습합니다.


🔎 이번 글에서 수행할 작업 요약

  1. MinIO Helm Chart values.yaml 다운로드 및 구조 확인
  2. 로그 출력 설정, 리소스 요청/제한, 버킷 구성 등 커스터마이징
  3. Helm Chart를 수정한 후 다시 배포
  4. 변경 사항이 반영되었는지 확인

📂 1단계: values.yaml 가져오기 및 구조 분석

이 단계의 목적: MinIO 설치 시 사용하는 values.yaml 파일을 직접 가져와 수정 가능하도록 만들고,
어떤 설정들이 가능한지 카테고리별로 구조를 파악합니다.

# MinIO Helm Chart 저장
helm show values bitnami/minio > values.yaml
# 파일 구조 일부 확인 (예시)
cat values.yaml | grep -E '^#|^auth|^resources|^buckets|^replicaCount'

✅ 이 파일을 통해 Helm Chart의 모든 구성 요소를 커스터마이징할 수 있으며,
설정 변경 후에는 helm install -f values.yaml 형식으로 배포하게 됩니다.


⚙️ 2단계: 주요 설정 항목 커스터마이징

이 단계의 목적: 기본 설정에서 변경하고 싶은 항목(예: 기본 버킷, 리소스 제한, 로그 설정 등)을
직접 수정하고 커스터마이징의 효과를 학습합니다.

✏️ 예시: 기본값에서 수정할 항목들

auth:
  rootUser: "admin"                          # 🔐 기본 사용자명 변경
  rootPassword: "strongpassword123"         # 🔐 보안 강화를 위한 비밀번호 수정

defaultBuckets: "etl-bucket,logs-bucket"    # 📦 기본 버킷 설정

resources:                                   # 💻 리소스 요청/제한 설정
  requests:
    memory: 512Mi
    cpu: 250m
  limits:
    memory: 1Gi
    cpu: 500m

persistence:
  size: 20Gi                                 # 💾 PVC 크기 변경

🔐 비밀번호나 사용자명은 실 환경에서는 꼭 Secret으로 대체해야 하며, 여기선 테스트용으로 직접 입력합니다.


🚀 3단계: 커스터마이징된 values.yaml로 MinIO 설치

이 단계의 목적: 수정한 values.yaml 파일을 기반으로 Helm을 통해
MinIO를 재배포하고 설정이 실제로 반영되는지 확인합니다.

# 기존 설치 삭제
helm uninstall minio -n minio

# 커스터마이징 배포
helm install minio bitnami/minio \
  --namespace minio \
  --create-namespace \
  -f values.yaml

✅ -f values.yaml을 통해 직접 수정한 설정이 적용됩니다.


🔍 4단계: 배포 확인 및 설정 반영 여부 점검

이 단계의 목적: kubectl describe, kubectl logs 등을 사용해
설정이 실제로 적용되었는지 확인합니다.

# 서비스 상태 확인
kubectl get all -n minio

# 로그 출력 확인
kubectl logs -l app.kubernetes.io/name=minio -n minio

# Pod 리소스 확인
kubectl describe pod -l app.kubernetes.io/name=minio -n minio | grep -A5 "Limits"

🔍 위 명령으로 리소스 제한이 적용되었는지, 기본 버킷이 생성되었는지 등을 확인합니다.


✅ 실무 적용 팁

항목
rootUser/rootPassword 실제 환경에서는 Secret으로 분리할 것
buckets Helm Chart에서 defaultBuckets 설정으로 초기 버킷 구성 가능
리소스 설정 CPU, Memory 제한은 반드시 적용 (특히 다중 워크로드 환경)
storage size 스토리지 크기는 운영환경에 따라 유동적으로 설정 필요

 

728x90