본문 바로가기

Deploy/kubernates

로컬 큐와 클러스터 큐 구분 (with dev,prod)

RabbitMQ를 사용하고 있는데, local로 queue에 접근하는 방법과(개인 테스트용) + cluster로 접근하는 방법이 있다. 

주로 자신이 개발한 것을 테스트 하기 위해서는 local queue로 접근을 하는데, 분명 local queue로 접근을 했다고 생각했지만 잘못된 행동을 하고 있었다.

 

local queue여도 dev, prod 구분 필요 

dev와 prod의 EXTERNAL-IP 주소가 다른데, 나는 dev를 실행하고 있는데 prod 환경의 queue를 실행하고 있었다. 

그런데, 이는 엄청 위험한 짓이다. prod 환경에 dev의 queue 내용이 쌓일 수 있다는 어마무시한.. 일이 벌어질 수 있다는 것이다. 

 

prod queue가 아닌 dev queue로 접속하기 위해 다음과 같은 과정을 거쳤다. 

 

1) kubectl config get-contexts 에서 dev 이름을 가진 컨텍스트로 접속 

* kubectl(쿠버네티스 cli)에서는 환경을 바꿔가며 클러스터를 관리하는 context 기능이 있다. 

2) 그럼 Switched to context '~-dev'로 바뀐다.

3) kubectl get service(or svc)로 rabbitmq의 EXTERNAL-IP로 접속 

-> rabbitMQ-management의 경우 rabbitMQ를 관리하는 admin으로 생각하면 쉬운데, 이를 rabbitMQ와 한 쌍으로 보면 된다.

4) .env.development 환경 파일에서 MQ_URL 주소에 내가 실행하고 싶은 EXTERNAL-IP 주소 입력