Cloud Computing & MSA

Helm Chart로 Bitnami Minio Stack 설치하기

냉장고를사다줘·2019년 10월 31일·조회 41,488

1. 개요

MiniO는 오픈 소스 오브젝트 스토리지 소프트웨어로 AWS S3 SDK와 호환되는 것이 특징이다. 따라서, 개발은 MiniO로 하다가 운영 시점에 S3를 구축하는 것이 가능해진다.


2. 설치

$ helm repo add bitnami https://charts.bitnami.com/bitnami
"bitnami" has been added to your repositories
$ helm install bitnami/minio
NAME:   wanton-frog
E1031 14:45:55.607330   30624 portforward.go:372] error copying from remote stream to local connection: readfrom tcp4 127.0.0.1:35545->127.0.0.1:47332: write tcp4 127.0.0.1:35545->127.0.0.1:47332: write: broken pipe
LAST DEPLOYED: Thu Oct 31 14:45:55 2019
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/Deployment
NAME               READY  UP-TO-DATE  AVAILABLE  AGE
wanton-frog-minio  0/1    1           0          0s

==> v1/PersistentVolumeClaim
NAME               STATUS   VOLUME  CAPACITY  ACCESS MODES  STORAGECLASS  AGE
wanton-frog-minio  Pending  gp2     0s        Filesystem

==> v1/Pod(related)
NAME                                READY  STATUS   RESTARTS  AGE
wanton-frog-minio-557dd5cfcf-5tqp5  0/1    Pending  0         0s

==> v1/Secret
NAME               TYPE    DATA  AGE
wanton-frog-minio  Opaque  2     0s

==> v1/Service
NAME               TYPE       CLUSTER-IP      EXTERNAL-IP  PORT(S)   AGE
wanton-frog-minio  ClusterIP  10.100.100.232         9000/TCP  0s


NOTES:
** Please be patient while the chart is being deployed **

MinIO can be accessed via port 9000 on the following DNS name from within your cluster:

   wanton-frog-minio.default.svc.cluster.local

To get your credentials run:

   export MINIO_ACCESS_KEY=$(kubectl get secret --namespace default wanton-frog-minio -o jsonpath="{.data.access-key}" | base64 --decode)
   export MINIO_SECRET_KEY=$(kubectl get secret --namespace default wanton-frog-minio -o jsonpath="{.data.secret-key}" | base64 --decode)

To connect to your MinIO server using a client:

- Run a MinIO Client pod and append the desired command (e.g. 'admin info'):

   kubectl run --namespace default wanton-frog-minio-client \
     --rm --tty -i --restart='Never' \
     --env MINIO_SERVER_ACCESS_KEY=$MINIO_ACCESS_KEY \
     --env MINIO_SERVER_SECRET_KEY=$MINIO_SECRET_KEY \
     --env MINIO_SERVER_HOST=wanton-frog-minio \
     --image docker.io/bitnami/minio-client:2019.10.9-debian-9-r16 -- admin info minio

To access the MinIO web UI:

- Get the MinIO URL:

   echo "MinIO web URL: http://127.0.0.1:9000/minio"
   kubectl port-forward --namespace default svc/wanton-frog-minio 9000:9000

3. 확인

$ kubectl get pod
NAME                                     READY   STATUS    RESTARTS   AGE
prodding-dingo-tomcat-6c9bb449b9-4nhvl   1/1     Running   0          9h
wanton-frog-minio-557dd5cfcf-5tqp5       1/1     Running   0          4m17s

4. UI 접속 방법

4.1. MINIO_ACCESS_KEY, MINIO_SECRET_KEY 획득

export MINIO_ACCESS_KEY=$(kubectl get secret --namespace default wanton-frog-minio -o jsonpath="{.data.access-key}" | base64 --decode)
export MINIO_SECRET_KEY=$(kubectl get secret --namespace default wanton-frog-minio -o jsonpath="{.data.secret-key}" | base64 --decode)

값은 echo $MINIO_ACCESS_KEYecho $MINIO_SECRET_KEY 로 확인 가능하다.

4.2. 포트 포워딩

$ kubectl port-forward --namespace default svc/wanton-frog-minio 9000:9000
Forwarding from 127.0.0.1:9000 -> 9000
Forwarding from [::1]:9000 -> 9000

하지만 완전 외부에서 접속 시에는 접속이 불가하다. 127.0.0.1 즉 localhost로만 가능하고, 외부에서 접속시에는 앞에 Proxy를 둬야 한다. (Nginx proxy_pass 등 설정)

4.3. 접속 화면

초기화면이다. Access Key, Secret Ket에 4.1에서 확인한 정보를 입력한다.

(+)를 누르면 새로운 Bucket을 만들 수 있다.

Bucket을 생성하고 파일을 업로드할 수 있다.

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.