반응형
Kubernetes에 Helm으로 Mongo 설치
설치
helm show values bitnami/mongodb > custom-values.yaml
간단하게 명령어로 설치해도 되지만 사용자 ID나 PVC의 용량을 미리 설정하기 위해 미리 yaml 파일을 수정해서 설치합니다.
auth:
enabled: true
rootUser: mongo-user
rootPassword: mongo-password
database: mydatabase
-------------------------------------
persistence:
enabled: true
size: 1Gi
-------------------------------------
service:
type: LoadBalancer
port: 27017
-------------------------------------
순서대로 사용자 정보와 데이터베이스 명, PVC 크기, Service 타입을 설정합니다.
여기서는 LoadBalancer로 설정합니다.
helm install my-mongodb -f custom-values.yaml bitnami/mongodb
업데이트
helm upgrade my-mongodb -f custom-values.yaml bitnami/mongodb
삭제
helm uninstall my-mongodb
연결 정보 확인
이제 kubectl get svc를 통해서 LoadBalancer의 External IP를 확인합니다.
해당 아이피와 27017 그리고 위에서 설정한 사용자 ID와 패스워드가 연결정보가 됩니다.
MongoDB 사용법
Pod에 직접 접속
k exec 명령어를 통해서 Pod에서 Mongo 명령어를 사용해볼 수 있습니다.
mongosh admin -u myid -p mypw
use mydb;
db.createCollection("MyCollection");
db.ProvisioningInfo.insertOne( { "id":"1", "name":"stir" });
db.ProvisioningInfo.find({});
인텔리제이에서 접속
인텔리제이에서도 똑같이 연결해서 사용 가능합니다.
Spring Webflux에 Mongo 연결해서 사용하기
설정
implementation("org.springframework.boot:spring-boot-starter-data-mongodb-reactive")
data:
mongodb:
host: ExternalIp
port: 27017
database: mydb # 사용할 데이터베이스 이름
username: myid # MongoDB 사용자 이름 (옵션, 필요 시)
password: mypw # MongoDB 비밀번호 (옵션, 필요 시)
yaml 파일을 연결 정보에 있던 것으로 수정해줍니다.
구현 코드
@Data
@Document(value="MyCollection")
public class MyCollection implements Serializable {
private static final long serialVersionUID = 142466781L;
@Id
private String id;
private String name;
}
@Repository
public interface MyCollectionRepository extends ReactiveMongoRepository<MyCollection, String> {
Flux<MyCollection> findAll();
}
이제 해당 Repository를 연결해서 사용하면 됩니다.
728x90
'🍃 Spring' 카테고리의 다른 글
[Spring] 영속성 프레임워크(JPA, R2DBC)에서 save 2번 진행 시 '생성 시간' 처리 방법 (0) | 2024.10.17 |
---|---|
[Spring] R2DBC DatabaseClient 잘 사용하기 (1) | 2024.09.19 |
[Spring] 스프링에서 가상 스레드를 이용한 부하테스트 (2) | 2024.03.15 |
@Autowired HttpServletRequest 사용하기(+RequestContextHolder, ThreadLocal) (0) | 2023.11.10 |
JUnit 문법 (0) | 2023.08.26 |