MinIO DirectPV는 쿠버네티스 환경에서 직접 연결된 스토리지(DAS: Direct Attached Storage)를 효율적으로 관리할 수 있게 해주는 Container Storage Interface(CSI) 드라이버입니다. 이 솔루션은 기존의 네트워크 스토리지 시스템 대신 노드의 로컬 디스크를 활용하여 높은 성능과 안정성을 제공합니다. DirectPV는 StorageClass로 동적 프로비저닝되어, 애플리케이션에서는 영구 볼륨 클레임(PVC)으로 사용할 수 있습니다.
MinIO 스터디를 진행하며 정리한 내용으로, 스터디 실습과 일부 다를 수 있습니다.
Controller는 Deployment로 배포되며, 리더가 선출되어 요청을 처리합니다.
Node-server는 DaemonSet으로 모든 노드에서 실행됩니다.
Krew는 kubectl 플러그인 관리자이며, DirectPV는 Krew 플러그인으로 제공되어 드라이버를 쉽게 관리할 수 있습니다.
krew를 설치합니다
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
KREW="krew-${OS}_${ARCH}" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
tar zxvf "${KREW}.tar.gz" &&
./"${KREW}" install krew
)
PATH에 등록합니다
echo "export PATH=\"$(echo "${KREW_ROOT:-$HOME/.krew}/bin"):\$PATH\"" >> ~/.bashrc
source ~/.bashrc
krew로 DirectPV 플러그인을 설치한 뒤 kubectl directpv 명령으로 사용합니다.
kubectl krew update
kubectl krew install directpv
바이너리로 설치하는 경우 kubectl-directpv 명령으로 사용합니다.
# Download DirectPV plugin. https://docs.min.io/community/minio-directpv/installation/#install-directpv-plugin-as-a-binary
$ release=$(curl -sfL "https://api.github.com/repos/minio/directpv/releases/latest" | awk '/tag_name/ { print substr($2, 3, length($2)-4) }')
$ curl -fLo kubectl-directpv https://github.com/minio/directpv/releases/download/v${release}/kubectl-directpv_${release}_linux_amd64
# Make the binary executable.
$ chmod a+x kubectl-directpv
$ mv kubectl-directpv /usr/local/bin/kubectl-directpv
DirectPV CSI 드라이버를 현재 클러스터에 설치합니다
kubectl directpv install
kubectl directpv info
kubectl get pods -n directpv
실제 사용은 다음 글에서 다뤄보겠습니다.
MinIO DirectPV PVC 테스트 (vagrant/k3s) (0) | 2025.09.18 |
---|---|
MinIO 아키텍처와 핵심 개념 정리 (0) | 2025.09.13 |
MinIO 기초적인 Tenant 배포와 EC 검증 테스트 (0) | 2025.09.12 |