dra*_*aro 3 rabbitmq kubernetes rabbitmqctl
我有一个 Kubernetes 环境,其中有一个rabbitmq servirve,它部署了 2 个rabbitmq pod。
我需要在rabbitmq上安装一个插件,(延迟消息插件)但我不喜欢“手动”方式,所以如果pod被删除,我必须再次安装插件。
我想知道实现此目标的推荐方法是什么。
仅供参考:手动方法是将文件复制到插件文件夹中,然后启动以下命令:
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
Run Code Online (Sandbox Code Playgroud)
您应该从配置映射中挂载 RabbitMQ 的配置。
例如:
配置映射:
apiVersion: v1
kind: ConfigMap
metadata:
name: rabbitmq-config
namespace: rabbitmq
data:
enabled_plugins: |
[rabbitmq_management,rabbitmq_peer_discovery_k8s].
rabbitmq.conf: |
...
definitions.json: |
...
Run Code Online (Sandbox Code Playgroud)
然后在您的 Deployment 或 StatefulSet 中:
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: rabbitmq
namespace: rabbitmq
spec:
replicas: 3
...
template:
...
spec:
containers:
- image: rabbitmq:3.7.4-management-alpine
imagePullPolicy: IfNotPresent
name: rabbitmq
volumeMounts:
- name: config-volume
mountPath: /etc/rabbitmq
...
volumes:
- name: config-volume
configMap:
name: rabbitmq-config
items:
- key: rabbitmq.conf
path: rabbitmq.conf
- key: enabled_plugins
path: enabled_plugins
- key: definitions.json
path: definitions.json
...
Run Code Online (Sandbox Code Playgroud)
首先有多种方法可以安装该插件。一种是基于您当前使用的映像,添加插件,然后使用新映像。或者,您可以利用Kubernetes 生命周期挂钩在启动前下载文件。这是postStart 的示例
| 归档时间: |
|
| 查看次数: |
6004 次 |
| 最近记录: |