k8s 部署单节点rabbitmq并安装rabbitmq_delayed_message_exchange-3.13.0.ez插件
build Dockerfile内容
FROM rabbitmq:3.13-management
COPY rabbitmq_delayed_message_exchange-3.13.0.ez /opt/rabbitmq/plugins
RUN chown -R rabbitmq:rabbitmq /opt/rabbitmq/plugins/rabbitmq_delayed_message_exchange-3.13.0.ez && \
rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange插件地址
rabbitmq_delayed_message_exchange-3.13.0.ez
创建secret
apiVersion: v1
kind: Secret
metadata:
name: rabbitmq-secret
type: Opaque
stringData:
username: admin
password: "123456" # 请修改
erlang-cookie: "aaabbbbcccceeee123"创建configmap
apiVersion: v1
kind: ConfigMap
metadata:
name: rabbitmq-cm
data:
rabbitmq.conf: |
management.tcp.port = 15672
enabled_plugins: |
[rabbitmq_management, rabbitmq_delayed_message_exchange].创建headless svc
apiVersion: v1
kind: Service
metadata:
name: rabbitmq-headless
spec:
clusterIP: None
selector:
app: rabbitmq
ports:
- name: amqp
port: 5672
targetPort: 5672
- name: epmd
port: 4369
targetPort: 4369
- name: distribution
port: 25672
targetPort: 25672创建svc
apiVersion: v1
kind: Service
metadata:
name: rabbitmq-svc
spec:
type: NodePort
selector:
app: rabbitmq
ports:
- name: amqp
port: 5672
targetPort: 5672
nodePort: 30672
- name: management
port: 15672
targetPort: 15672
nodePort: 31672部署rabbitmq
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: rabbitmq
spec:
serviceName: rabbitmq-headless
replicas: 1
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
containers:
- name: rabbitmq
image: 192.168.66.241/base/rabbitmq-delayed:3.13.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 5672
name: amqp
- containerPort: 15672
name: management
- containerPort: 4369
name: epmd
- containerPort: 25672
name: distribution
env:
- name: RABBITMQ_DEFAULT_USER
valueFrom:
secretKeyRef:
name: rabbitmq-secret
key: username
- name: RABBITMQ_DEFAULT_PASS
valueFrom:
secretKeyRef:
name: rabbitmq-secret
key: password
- name: RABBITMQ_ERLANG_COOKIE
valueFrom:
secretKeyRef:
name: rabbitmq-secret
key: erlang-cookie
# 集群发现配置
- name: RABBITMQ_USE_LONGNAME
value: "false"
volumeMounts:
- name: rabbitmq-config
mountPath: /etc/rabbitmq/conf.d/
- name: rabbitmq-data
mountPath: /var/lib/rabbitmq
livenessProbe:
exec:
command: ["rabbitmq-diagnostics", "status"]
initialDelaySeconds: 60
periodSeconds: 30
timeoutSeconds: 10
readinessProbe:
exec:
command: ["rabbitmq-diagnostics", "ping"]
initialDelaySeconds: 20
periodSeconds: 10
timeoutSeconds: 5
resources:
requests:
memory: "512Mi"
cpu: "500m"
limits:
memory: "8Gi"
cpu: "4000m"
imagePullSecrets:
- name: regcred
volumes:
- name: rabbitmq-config
configMap:
name: rabbitmq-cm
defaultMode: 0644
- name: rabbitmq-data
hostPath:
type: DirectoryOrCreate
path: /data/rabbitmq
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小白
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果

