티스토리 뷰

반응형

✏️ 환경

  • 쿠버네티스 클러스터 (마스터 1대, 워커 1대)
  • MinIO: ClusterIP 서비스, hostPath 볼륨 사용
  • 로컬: Mac

✏️ MinIO 서비스 및 자격증명 확인

먼저 MinIO 서비스 이름과 네임스페이스를 확인한다.

kubectl get svc -A | grep minio
# semosan   minio   ClusterIP   IP   <none>   9000/TCP,9001/TCP

자격증명은 k8s secret에서 꺼낸다

kubectl get secret minio-secret -n semosan -o yaml

값이 base64 인코딩이므로 디코딩한다.

kubectl get secret minio-secret -n semosan \
  -o jsonpath='{.data.MINIO_ROOT_USER}' | base64 -d

kubectl get secret minio-secret -n semosan \
  -o jsonpath='{.data.MINIO_ROOT_PASSWORD}' | base64 -d

 

✏️ 방법 A - Mac 로컬에서 바로 하기 

Mac에서 직접 mc를 사용하는 방법이다. 터미널이 3개 필요하다.

① 마스터 노드에서 port-forward 실행
Forwarding from 127.0.0.1:19000 -> 9000 메시지가 뜨면 성공. 이 터미널은 유지한다.

kubectl port-forward svc/minio 19000:9000 -n semosan

② Mac 터미널에서 SSH 터널 연결 => ~/.ssh/config에 등록했다면 더 간단하다.
로그인 후 이 터미널도 유지한다. 흔한 실수: 마스터의 내부 IP(10.0.x.x)로 SSH를 시도하면 타임아웃이 난다. 반드시 공인 IP 또는 SSH config에 등록된 이름을 사용해야 한다.

Host k8s-master
    HostName 64.110.117.214
    User ubuntu
    IdentityFile ~/.ssh/k8s-master.key

ssh -L 19000:localhost:19000 k8s-master
 

③ Mac 새 터미널에서 mc 설치 및 다운로드

# mc 설치
brew install minio/stable/mc

# alias 등록
mc alias set semosan http://localhost:19000 minio-admin minio-secret-password

# 버킷 확인
mc ls semosan

# 다운로드
mc cp --recursive semosan/semofeed ~/Desktop/semofeed-backup/

 

✏️ 방법 B - 마스터 노드에서 받고 scp로 가져오기

Mac에서 SSH 터널이 안 되는 환경이거나, 파일 용량이 크지 않을 때 유용하다.

① 마스터에 mc 설치

# 아키텍처 확인
uname -m

# x86_64
wget https://dl.min.io/client/mc/release/linux-amd64/mc

# aarch64 (arm)
wget https://dl.min.io/client/mc/release/linux-arm64/mc

chmod +x mc && sudo mv mc /usr/local/bin/

② port-forward + mc로 다운로드

kubectl port-forward svc/minio 19000:9000 -n semosan &

mc alias set local http://localhost:19000 minio-admin minio-secret-password
mc ls local                                          # 버킷 확인
mc cp --recursive local/semofeed ~/semofeed-backup/  # 다운로드

③ Mac으로 scp

scp -r -i ~/.ssh/k8s-master.key \
  ubuntu@64.110.117.214:~/semofeed-backup ~/Desktop/semofeed-backup


✏️ 방법 C - MinIO 웹 콘솔에서 다운로드

소량의 파일을 브라우저 UI로 편하게 받고 싶을 때 사용한다.

① 마스터에서 콘솔 포트 포워드

kubectl port-forward svc/minio 19001:9001 -n semosan

② Mac에서 SSH 터널

ssh -L 19001:localhost:19001 k8s-master

③ 브라우저에서 접속

http://localhost:19001 에 접속 후 로그인 → 버킷 → 파일 선택 → 다운로드.


✏️ 시도했다가 실패한 방법들

kubectl cp => MinIO 공식 이미지에 tar가 없어서 불가능하다.

kubectl cp semosan/<minio-파드>:/data/semofeed ./semofeed-backup/
# error: exec: "tar": executable file not found in $PATH

 

MinIO 데이터 디렉토리 직접 복사 => 파일이 복사는 되지만 Finder에서 열면 전부 폴더로 보인다. MinIO가 객체를 내부적으로 아래 구조로 저장하기 때문이다

cp -r /data/minio/semofeed ~/semofeed-backup
scp -r ubuntu@<마스터>:~/semofeed-backup ~/Desktop/

이 상태로는 이미지를 바로 열 수 없다. 반드시 mc cp로 받아야 정상 jpg 파일로 추출된다.

semofeed/
  image-uuid.jpg/     ← 폴더
    xl.meta           ← 메타데이터 + 이미지 데이터 (바이너리 인라인)

✏️ 정리

방법 결과 비고
Mac에서 SSH 터널 + mc ✅ 성공 공인 IP로 SSH 해야 함
마스터에서 mc → scp ✅ 성공 두 단계지만 안정적
MinIO 웹 콘솔 ✅ 성공 소량 파일에 편함
kubectl cp ❌ 실패 컨테이너에 tar 없음
/data/minio 직접 복사 ❌ 실패 xl.meta 포맷, 이미지 추출 불가
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/07   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함