문서 목차
ORKESTRIX설치
메시지 큐 (ActiveMQ / RabbitMQ)
서비스 간 비동기 메시지 송수신 을 위한 메시지 브로커를 구성합니다. ActiveMQ 와 RabbitMQ 중 환경에 맞게 선택해 설치할 수 있으며, 둘 다 동시에 설치해도 무방합니다. 웹 관리 콘솔로 큐 상태를 확인·관리할 수 있습니다.
QUANTUM C&S
서비스 간 비동기 메시지 송수신을 위한 메시지 브로커를 구성합니다. ActiveMQ와 RabbitMQ 중 환경에 맞게 선택해 설치할 수 있으며, 둘 다 동시에 설치해도 무방합니다. 웹 관리 콘솔로 큐 상태를 확인 · 관리할 수 있습니다.
설정값
inventory/qks/group_vars/all/all-k8s.yaml:
# ActiveMQ
qks_activemq_enabled: true
qks_activemq_version: 1.0.0
qks_activemq_storage_size: 100Gi
qks_activemq_fqdn: "activemq.{{ kube_default_domain }}"
# RabbitMQ
qks_rabbitmq_enabled: true
qks_rabbitmq_version: 16.0.14
qks_rabbitmq_replicas: 3
qks_rabbitmq_storage_size: 10Gi
qks_rabbitmq_admin_fqdn: "mq.{{ kube_default_domain }}"
실행
./install.sh ubuntu plays/qks-activemq.yaml
./install.sh ubuntu plays/qks-rabbitmq.yaml
설치 흐름
./install.sh ubuntu plays/qks-activemq.yaml
├─ 1. 웹 콘솔 접속 도메인을 각 노드 /etc/hosts에 등록
├─ 2. Helm 저장소 등록 ('QUANTUM')
├─ 3. 네임스페이스 생성
└─ 4. Helm으로 ActiveMQ 배포 (내장 PVC로 메시지 저장)
./install.sh ubuntu plays/qks-rabbitmq.yaml
├─ 1. 관리 콘솔 접속 도메인을 각 노드 /etc/hosts에 등록
├─ 2. Helm 저장소 등록 ('bitnami')
├─ 3. 네임스페이스 생성
└─ 4. Helm으로 RabbitMQ 배포 (3노드 클러스터, 내장 PVC로 메시지 저장)
설치 확인
kubectl get pods -n <qks_activemq_namespace> | grep -E "activemq|rabbitmq"
파드가 모두 Running이어야 합니다(RabbitMQ는 설정한 노드 수만큼).
실제 동작 확인
ActiveMQ
웹 콘솔 확인:
curl -k -s -o /dev/null -w "%{http_code}\n" -u admin:<qks_activemq_admin_pass> https://<qks_activemq_fqdn>/admin/
200이 나오면 정상입니다.
비동기 메시지 송수신 확인:
# 메시지 발행
curl -k -s -u admin:<qks_activemq_admin_pass> -d "body=hello" "https://<qks_activemq_fqdn>/api/message/gs.test.queue?type=queue"
# 메시지 수신
curl -k -s -u admin:<qks_activemq_admin_pass> "https://<qks_activemq_fqdn>/api/message/gs.test.queue?type=queue&readTimeout=2000"
보낸 값(hello)이 그대로 수신되면 정상입니다.
RabbitMQ
관리 콘솔 확인:
curl -k -s -o /dev/null -w "%{http_code}\n" -u <qks_rabbitmq_admin_user>:<qks_rabbitmq_admin_pass> https://<qks_rabbitmq_admin_fqdn>/api/overview
200이 나오면 정상입니다.
비동기 메시지 송수신 확인:
# 큐 생성
curl -k -s -u <user>:<pass> -X PUT "https://<qks_rabbitmq_admin_fqdn>/api/queues/%2f/gs.test.queue" -d '{"durable":true}'
# 메시지 발행
curl -k -s -u <user>:<pass> -X POST "https://<qks_rabbitmq_admin_fqdn>/api/exchanges/%2f/amq.default/publish" -d '{"properties":{},"routing_key":"gs.test.queue","payload":"hello","payload_encoding":"string"}'
# 메시지 수신
curl -k -s -u <user>:<pass> -X POST "https://<qks_rabbitmq_admin_fqdn>/api/queues/%2f/gs.test.queue/get" -d '{"count":1,"ackmode":"ack_requeue_false","encoding":"auto"}'
보낸 값(hello)이 그대로 수신되면 정상입니다.