我需要在kubernetes集群上设置基本的Rabbit MQ实例(无集群设置),而没有持久性或安全性要求。
我需要什么:
作为状态集运行的单个Rabbit mq pod带有副本= 1,并且 通过特定的URL(amgp端口和管理界面端口)从集群内部和外部访问它
我不需要的东西:
到目前为止,我发现的掌舵图都是通过集群,持久性等来完成生产设置,但是我不需要这些东西,因为我将仅使用实例进行测试
这是我到目前为止所拥有的:
apiVersion: v1
kind: Service
metadata:
name: rs-rmq-mgt
spec:
selector:
app: rs-rmq
ports:
- protocol: TCP
port: 1337
targetPort: 15672
type: NodePort
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: rs-rmq
spec:
selector:
matchLabels:
app: rs-rmq
serviceName: "rs-rmq"
replicas: 1
template:
metadata:
labels:
app: rs-rmq
spec:
containers:
- name: rs-rmq
image: rabbitmq:management
ports:
- containerPort: 25672
- containerPort: 5672
- containerPort: 4369
- containerPort: 15672
答案 0 :(得分:0)
如果您不需要的只是副本和持久性。您可以使用简单的pod部署而不是sts。 Please refer sts doc
kubectl run rabbitmq --image=rabbitmq:management --expose --port=15672 --restart=Never
--dry-run -o yaml > rabbitmq.yml
编辑相关的容器端口并创建容器。
kubectl create -f rabbitmq.yml
将服务公开为NodePort。
kubectl expose po rabbitmq --port 15672
现在,您可以通过
从外部进行访问NodesIP:NodePort
并在内部使用
[svc]。[namespace] .svc
答案 1 :(得分:0)
执行此操作的正确方法是,通过专用的头盔图(stable/rabbitmq)和helm(Kubernetes程序包管理器)安装Rabbitmq。这样做的主要原因是:这种方式已经过开源社区的彻底测试和验证。
如果要使用快捷方式,请从Kubernetes官方网站上参考以下任务:Starting a message queue service(rabbitmq)。您会在其中找到所有必要清单文件的链接。
答案 2 :(得分:0)
将此部署文件用于基本Rabbitmq实例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq
labels:
app: rabbitmq
spec:
replicas: 1
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
containers:
- name: rabbitmq
image: rabbitmq:3-management
env:
- 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
答案 3 :(得分:0)