美文网首页
单节点rabbitmq的k8s配置(一)

单节点rabbitmq的k8s配置(一)

作者: Charles_linzc | 来源:发表于2021-04-19 22:27 被阅读0次

RabbitMQ官网推荐RabbitMQ在K8S上的安装使用rabbitmq的Kubernetes Operator完成,通过operator搭建rabbitmq cluster比较方便, 但需要额外的operator的下载和安装。这里能,我们需要安装一个单节点的rabbitmq, 使用 社区维护的rabbitmq docker来完成。
RabbitMQ的docker版本,我们使用3.8.14-management
,这个版本包含最新的服务器版本以及管理端工具。
以下是rabbitmq的k8s配置文件:

  1. service 配置文件
    这里我们创建两个service:rabbitmq-adminweb 和 rabbitmq-server; admin service 使用nodePort方式将管理端口15672映射到本地机器的32001端口,方便访问管理端。
    rabbitmq server 使用5672端口, 只能在K8S cluster内访问。
    使用nodePort方式,

apiVersion: v1
kind: Service
metadata:
name: rabbitmq-adminweb
spec:
type: NodePort
ports:
- name: rabbitmq-web
port: 15672
targetPort: 15672
nodePort: 32001
selector:
app: rabbitmq

apiVersion: v1
kind: Service
metadata:
name: rabbitmq-server
spec:
ports:

  • port: 5672
    selector:
    app: rabbitmq
  1. deployment的配置

这里我们使用环境变量设置了vhost以及admin的用户名,密码。


apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq
spec:
replicas: 1
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
hostname: my-rabbit
containers:
- name: rabbitmq
image: rabbitmq:3.8-management
imagePullPolicy: IfNotPresent
ports:
- name: rabbitmq-web
containerPort: 15672
- name: rabbitmq-app
containerPort: 5672
env:
- name: RABBITMQ_DEFAULT_VHOST
value: /
- name: RABBITMQ_DEFAULT_USER
value: admin
- name: RABBITMQ_DEFAULT_PASS
value: Admin329
volumeMounts:
- name: persisitent-storage-rabbitmq
mountPath: /var/lib/rabbitmq
volumes:
- name: persisitent-storage-rabbitmq
hostPath:
path: /mnt/d/data/rabbitmq

Notes: 因为这次使用的win10 docker desktop +WSL 2 环境安装的k8s, 所以设置的d盘上的数据文件加路径以/mnt/d 开始。

使用kubectl apply -f 应用配置, rabbitmq pod起来后,可以使用:
http://<host ip>:32001/ 访问管理端,输入用户名密码后即可看到管理页面。


image.png
  1. 增加secret文件
    接着我们把RabbitMQ的默认用户和密码放在secret文件里,方便维护。并且修改
    rabbitmq_secret.yaml

apiVersion: v1
kind: Secret
metadata:
name: rabbitmqsecret
type: Opaque
data:
adminusername: YWRtaW4K
adminpassword: QWRtaW4xMjMK

更新的deployment文件

apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq
spec:
replicas: 1
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
hostname: my-rabbit
containers:
- name: rabbitmq
image: rabbitmq:3.8-management
imagePullPolicy: IfNotPresent
ports:
- name: rabbitmq-web
containerPort: 15672
- name: rabbitmq-app
containerPort: 5672
env:
- name: RABBITMQ_DEFAULT_VHOST
value: /
- name: RABBITMQ_DEFAULT_USER
valueFrom:
secretKeyRef:
name: rabbitmqsecret
key: adminusername
- name: RABBITMQ_DEFAULT_PASS
valueFrom:
secretKeyRef:
name: rabbitmqsecret
key: adminpassword
volumeMounts:
- name: persisitent-storage-rabbitmq
mountPath: /var/lib/rabbitmq
volumes:
- name: persisitent-storage-rabbitmq
hostPath:
path: /mnt/d/data/rabbitmq

相关文章

网友评论

      本文标题:单节点rabbitmq的k8s配置(一)

      本文链接:https://www.haomeiwen.com/subject/cfnilltx.html