如何在 kubernetes 上设置基本的rabbitmq

Mar*_*tin 9 rabbitmq kubernetes kubernetes-ingress kubernetes-statefulset

我需要在 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
Run Code Online (Sandbox Code Playgroud)

har*_*riK 7

如果您不需要的不仅仅是副本和持久性。您可以使用简单的 pod 部署而不是 sts。请参考 sts 文档

kubectl run rabbitmq --image=rabbitmq:management --expose --port=15672 --restart=Never
--dry-run -o yaml > rabbitmq.yml
Run Code Online (Sandbox Code Playgroud)

编辑相关的容器端口并创建 pod。

kubectl create -f rabbitmq.yml
Run Code Online (Sandbox Code Playgroud)

将服务公开为 NodePort。

kubectl expose po rabbitmq --port 15672
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过外部访问它

节点IP:节点端口

并在内部使用,

[svc].[命名空间].svc