본문 바로가기
Programming

Kubernetes kubectl MongoDB 데이터 추출하기

by daewooki 2024. 4. 29.
반응형


K8s클러스터에 구성된 MongoDB(DocumentDB) 에서 데이터를 추출하는 방법에 대해 설명합니다.

 

로컬에서 K8s에 접근하여 pod를 띄워 mongo db 내부 데이터를 복사하는 순서는 아래와 같습니다. 

 

1. mongosh을 사용할 수 있는 pod를 하나 띄우고 내부에 접속한다.
2. 내부에서 mongosh을 이용해서 데이터베이스에 접근한다.
3. 데이터를 조회하여 변수에 담는다.
4. 해당 변수를 javascript를 이용해서 pod 로컬에 저장 한다.
5. pod로 부터 로컬에 파일을 복사한다.

 

순서에 맞게 명령어를 통해 확인해봅시다. 

로컬과 Pod 내부에서 진행되는 내용이 헷갈릴 수 있으므로 잘 확인하며 진행하면 될 것이다.

* 명령어 실행 전, 먼저 mongo 도커 이미지가 필요하다.

1
docker pull mongo
cs

 

In Local

1
kubectl run curl --image=mongo
cs



In Pod(curl)

1
2
mongosh "mongodb://admin:password@mongo-db.docdb.amazonaws.com:27017/?retryeWrites=false"
 
cs



In mongosh in Pod

1
2
3
4
5
6
7
8
9
10
11
use user-data
show collections
 
# 특정날짜 데이터 조회하기
var result = db.user.find({timestampe: {$gte:('2023-12-01T00:00:00.000Z'), $lte: ('2023-12-31T23:59:59.999Z')} })
result.count()
 
var resultArray =  result.toArray();
var jsonResult = JSON.stringify(resultArray, null, 2);
require('fs').writeFileSync('/home/output.json', jsonResult);
exit
cs



In Pod(curl)

1
2
3
ls -al /home/
- output.json
exit
cs




In Local

1
kubectl cp curl:/home/output.json output.json
cs

 



반응형

댓글