Kubernetes에 RabbitMQ 구축하기
2022. 6. 27. 14:49ㆍ프로그래밍 개발(Development)/k8s
반응형
쿠버네티스에 RabbitMQ를 구축시 Deployment로 생성할 수도 있지만, Pod가 종료시 대기열에 있는 데이터가 삭제 되므로, 유지하기 위해서 StatefulSet으로 생성해야만 한다.
rabbitmq-statefulset.yaml
user / password : rabbit/rabbit 으로 설정한 컨테이너를 설정한다.
apiVersion: apps/v1
kind: StatefulSet
metadata:
namespace: rabbit
name: rabbitmq
spec:
replicas: 1
serviceName: rabbitmq
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
containers:
- name: rabbitmq
image: rabbitmq:3-management
env:
- name: RABBITMQ_DEFAULT_USER
value: "rabbit"
- name: RABBITMQ_DEFAULT_PASS
value: "rabbit"
#- name: RABBITMQ_ERLANG_COOKIE
# value: "1WqgH8N2v1qDBDZDbNy8Bg9IkPWLEpu79m6q+0t36lQ="
volumeMounts:
- mountPath: /var/lib/rabbitmq
name: rabbitmq-data
volumes:
- name: rabbitmq-data
hostPath:
path: /data/rabbitmq
type: DirectoryOrCreate
Statefulset 생성 및 Pod 생성
$ kubectl apply -f rabbitmq-statefulset.yaml
rabbitmq-service.yaml
statefulset이 생성이 되면 서비스를 생성하여 외부/내부 접근 포트를 설정해 준다.
externalip는 HostIP를 등록 해주면 된다.
apiVersion: v1
kind: Service
metadata:
# Expose the management HTTP port on each node
namespace: rabbit
name: rabbitmq-management
labels:
app: rabbitmq
spec:
selector:
app: rabbitmq
ports:
- port: 15672
name: http
targetPort: 15672
externalIPs:
- 192.168.10.5
#type: LoadBalancer # Or LoadBalancer in production w/ proper security
---
apiVersion: v1
kind: Service
metadata:
# The required headless service for StatefulSets
namespace: rabbit
name: rabbitmq
labels:
app: rabbitmq
spec:
ports:
- port: 5672
name: amqp
targetPort: 5672
- port: 4369
name: epmd
- port: 25672
name: rabbitmq-dist
#externalIPs:
# - 172.16.113.205
selector:
app: rabbitmq
type: ClusterIP
서비스를 생성해 준다.
$ kubectl apply -f rabbitmq-service.yaml
서비스 생성 후에 http://{externalip}:15672 로 접속하면 RabbitMQ 포탈 접속이 될것이다.
내부 통신은 {서비스명}:{포트}로 rabbitmq:5672 로 통신을 하면 된다.
반응형
'프로그래밍 개발(Development) > k8s' 카테고리의 다른 글
쿠버네티스 컨테이너 타임존 설정하기(Setting the Kubernetes container timezone) (0) | 2022.06.17 |
---|---|
Kubernetes에 ELK(Kibana) 구축하기 #3 (2) | 2022.06.17 |
Kubernetes에 ELK(Logstash) 구축하기 #2 (0) | 2022.06.16 |
Kubernetes에 ELK(Elasticsearch) 구축하기 #1 (0) | 2022.06.16 |
Kubernetes Dashboard 설치(Install k8s dashboard) (0) | 2022.05.23 |