26S21e

QK·2026년 9월 21일

Helm Chart로 전환할 경우, 앞서 수동으로 작성했던 ConfigMap, Deployment, Service 매니페스트를 직접 작성하고 관리할 필요 없이 values.yaml 하나로 선언형 관리가 가능해집니다.

특히 MinIO Operator / Tenant 환경에서는 KMS(KES) 설정 섹션이 Tenant Chart에 내장되어 있거나 독립형 KES 차트로 배포할 수 있어 훨씬 간결해집니다.

수동 구성 대비 달라지는 점과 실제 Helm 설정 방법을 정리해 드립니다.


1. 무엇이 달라지는가? (수동 매니페스트 vs Helm 차트)

구분수동 매니페스트 적용Helm Chart 적용 (values.yaml)
인증서 준비openssl로 수동 생성 후 kubectl create secret여전히 사전 Secret 생성 필요 (보안 키 파일 자체는 Helm values에 평문으로 넣지 않고 사전 Secret 참조 권장)
ConfigMap / 정책minkms-config.yaml 직접 작성 및 마운트values.yaml의 kes.kesConfiguration 또는 policy 블록에 선언
Deployment / Service리플리카, 포트, 프로브, 마운트 경로 직접 작성replicas: 2, Service Type 등 값만 파라미터로 제어
MinIO 테넌트 연동테넌트 CRD 수정 후 파드 재배포테넌트 차트의 tenant.kms 값을 활성화하여 원클릭 연동

2. Helm 차트 기반 구성 절차

1단계. 인증서 Secret 사전 생성 (기존과 동일)

보안상 개인키/인증서는 Secret으로 사전 생성해 두는 것이 일반적입니다.

# 1. MinKMS 서버 TLS Secret
kubectl create secret tls minkms-tls \
  --cert=minkms-server.crt --key=minkms-server.key -n minkms

# 2. MinIO 테넌트용 클라이언트 Secret
kubectl create secret generic minio-kes-client-cert \
  --from-file=client.crt=minio-client.crt \
  --from-file=client.key=minio-client.key \
  -n minio

2단계. MinKMS(KES) Helm 배포 (kes-values.yaml)

독립형 KES Helm Chart(minio/kes)를 배포하는 경우의 values.yaml 예시입니다.

# kes-values.yaml
replicaCount: 2

image:
  repository: quay.io/minio/kes
  tag: latest

# 1단계에서 만든 서버 TLS Secret 연결
tls:
  certSecret: minkms-tls

# KES 설정 (Identity 해시 및 백엔드 스토리지 정의)
configuration:
  address: 0.0.0.0:7373
  policy:
    minio:
      paths:
        - /v1/key/create/*
        - /v1/key/generate/*
        - /v1/key/decrypt/*
      identities:
        - 7b8d4e9f3a1c2b5d6e8f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d # 추출한 Client Hash

  keystore:
    fs:
      path: /var/lib/kes/keys

# 마스터 키 영구 보관용 PVC 설정
persistence:
  enabled: true
  size: 10Gi

service:
  type: ClusterIP
  port: 7373

Helm 배포 명령어:

helm repo add minio https://operator.min.io/
helm repo update

helm install minkms minio/kes \
  -n minkms --create-namespace \
  -f kes-values.yaml

3단계. MinIO Tenant Helm 차트에 KMS 연동 (tenant-values.yaml)

MinIO Tenant Chart를 배포하거나 업그레이드할 때 kms 섹션만 채워주면 테넌트 파드가 자동으로 KMS 환경변수와 인증서를 물고 뜹니다.

# tenant-values.yaml 발췌
tenant:
  name: myaistor
  kms:
    enabled: true
    # Helm으로 띄운 MinKMS 서비스 도메인
    endpoint: "https://minkms.minkms.svc.cluster.local:7373"
    defaultKey: "my-minio-key"
    # 1단계에서 생성한 MinIO 클라이언트 Secret 이름
    secretName: minio-kes-client-cert
    # 자체 서명 인증서 신뢰를 위해 서버 CRT를 CA로 등록한 Secret
    caCertSecret: minkms-ca-cert

테넌트 적용/업그레이드:

helm upgrade --install myaistor minio/tenant \
  -n minio \
  -f tenant-values.yaml

정리

  • 인증서 생성 및 Identity 해시 추출 단계는 여전히 필요합니다.
  • 배포 관점에서는 장문의 K8s 리소스 YAML을 관리할 필요 없이, KES Helm 차트로 서버를 띄우고 →\rightarrow Tenant Helm 차트의 tenant.kms 설정에 엔드포인트와 Secret 이름만 지정하면 완료됩니다.
profile
engineer

0개의 댓글