gpt4 book ai didi

docker - 如果在 kubernetes 中使用 rabbitmq 操作符部署 rabbitmq,如何启用 rabbitmq 插件 "rabbitmq_delayed_message_exchange"

转载 作者:行者123 更新时间:2023-12-02 21:32:07 29 4
gpt4 key购买 nike

我部署了 兔MQ 使用 的实例rabbitmq 运算符 Kubernetes .我正在尝试启用 rabbitmq 插件: rabbitmq_delayed_message_exchange .
我尝试定义我的 RabbitmqCluster 作为:

apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
name: definition
spec:
replicas: 1
rabbitmq:
additionalPlugins:
- rabbitmq_management
- rabbitmq_delayed_message_exchange
service:
type: LoadBalancer
然后我跑了 kubectl apply -f definition.yaml但是我的 pod 日志 显示了这一点:
...
2020-10-05T15:42:15.081783023Z 2020-10-05 15:42:15.081 [info] <0.535.0> Server startup complete; 6 plugins started.
2020-10-05T15:42:15.081802701Z * rabbitmq_prometheus
2020-10-05T15:42:15.08180602Z * rabbitmq_peer_discovery_k8s
2020-10-05T15:42:15.081808816Z * rabbitmq_peer_discovery_common
2020-10-05T15:42:15.081811359Z * rabbitmq_management
2020-10-05T15:42:15.08181387Z * rabbitmq_web_dispatch
2020-10-05T15:42:15.081825082Z * rabbitmq_management_agent
2020-10-05T15:42:15.081951576Z completed with 6 plugins.
...
没有任何引用 对此 插件 日志 .
我进入我的 rabbitmq pod 并运行: rabbitmq 插件列表
Listing plugins with pattern ".*" ...
Configured: E = explicitly enabled; e = implicitly enabled
| Status: * = running on rabbit@definition-rabbitmq-server-0.definition-rabbitmq-headless.default
|/
[ ] rabbitmq_amqp1_0 3.8.8
[ ] rabbitmq_auth_backend_cache 3.8.8
[ ] rabbitmq_auth_backend_http 3.8.8
[ ] rabbitmq_auth_backend_ldap 3.8.8
[ ] rabbitmq_auth_backend_oauth2 3.8.8
[ ] rabbitmq_auth_mechanism_ssl 3.8.8
[ ] rabbitmq_consistent_hash_exchange 3.8.8
[ ] rabbitmq_event_exchange 3.8.8
[ ] rabbitmq_federation 3.8.8
[ ] rabbitmq_federation_management 3.8.8
[ ] rabbitmq_jms_topic_exchange 3.8.8
[E*] rabbitmq_management 3.8.8
[e*] rabbitmq_management_agent 3.8.8
[ ] rabbitmq_mqtt 3.8.8
[ ] rabbitmq_peer_discovery_aws 3.8.8
[e*] rabbitmq_peer_discovery_common 3.8.8
[ ] rabbitmq_peer_discovery_consul 3.8.8
[ ] rabbitmq_peer_discovery_etcd 3.8.8
[E*] rabbitmq_peer_discovery_k8s 3.8.8
[E*] rabbitmq_prometheus 3.8.8
[ ] rabbitmq_random_exchange 3.8.8
[ ] rabbitmq_recent_history_exchange 3.8.8
[ ] rabbitmq_sharding 3.8.8
[ ] rabbitmq_shovel 3.8.8
[ ] rabbitmq_shovel_management 3.8.8
[ ] rabbitmq_stomp 3.8.8
[ ] rabbitmq_top 3.8.8
[ ] rabbitmq_tracing 3.8.8
[ ] rabbitmq_trust_store 3.8.8
[e*] rabbitmq_web_dispatch 3.8.8
[ ] rabbitmq_web_mqtt 3.8.8
[ ] rabbitmq_web_mqtt_examples 3.8.8
[ ] rabbitmq_web_stomp 3.8.8
[ ] rabbitmq_web_stomp_examples 3.8.8
并检查了 pod plugins/目录 :
README
accept-0.3.5.ez
amqp10_client-3.8.8.ez
amqp10_common-3.8.8.ez
amqp_client-3.8.8.ez
aten-0.5.5.ez
base64url-0.0.1.ez
cowboy-2.6.1.ez
cowlib-2.7.0.ez
credentials_obfuscation-2.2.0.ez
cuttlefish-2.4.1.ez
eetcd-0.3.3.ez
gen_batch_server-0.8.4.ez
getopt-1.0.1.ez
goldrush-0.1.9.ez
gun-1.3.3.ez
jose-1.10.1.ez
jsx-2.11.0.ez
lager-3.8.0.ez
observer_cli-1.5.4.ez
prometheus-4.6.0.ez
ra-1.1.6.ez
rabbit-3.8.8.ez
rabbit_common-3.8.8.ez
rabbitmq_amqp1_0-3.8.8.ez
rabbitmq_auth_backend_cache-3.8.8.ez
rabbitmq_auth_backend_http-3.8.8.ez
rabbitmq_auth_backend_ldap-3.8.8.ez
rabbitmq_auth_backend_oauth2-3.8.8.ez
rabbitmq_auth_mechanism_ssl-3.8.8.ez
rabbitmq_aws-3.8.8.ez
rabbitmq_consistent_hash_exchange-3.8.8.ez
rabbitmq_event_exchange-3.8.8.ez
rabbitmq_federation-3.8.8.ez
rabbitmq_federation_management-3.8.8.ez
rabbitmq_jms_topic_exchange-3.8.8.ez
rabbitmq_management-3.8.8.ez
rabbitmq_management_agent-3.8.8.ez
rabbitmq_mqtt-3.8.8.ez
rabbitmq_peer_discovery_aws-3.8.8.ez
rabbitmq_peer_discovery_common-3.8.8.ez
rabbitmq_peer_discovery_consul-3.8.8.ez
rabbitmq_peer_discovery_etcd-3.8.8.ez
rabbitmq_peer_discovery_k8s-3.8.8.ez
rabbitmq_prelaunch-3.8.8.ez
rabbitmq_prometheus-3.8.8.ez
rabbitmq_random_exchange-3.8.8.ez
rabbitmq_recent_history_exchange-3.8.8.ez
rabbitmq_sharding-3.8.8.ez
rabbitmq_shovel-3.8.8.ez
rabbitmq_shovel_management-3.8.8.ez
rabbitmq_stomp-3.8.8.ez
rabbitmq_top-3.8.8.ez
rabbitmq_tracing-3.8.8.ez
rabbitmq_trust_store-3.8.8.ez
rabbitmq_web_dispatch-3.8.8.ez
rabbitmq_web_mqtt-3.8.8.ez
rabbitmq_web_mqtt_examples-3.8.8.ez
rabbitmq_web_stomp-3.8.8.ez
rabbitmq_web_stomp_examples-3.8.8.ez
ranch-1.7.1.ez
recon-2.5.1.ez
stdout_formatter-0.2.4.ez
syslog-3.4.5.ez
sysmon_handler-1.3.0.ez
所以这意味着 插件未集成 .
我还发现了这个:
How to install rabbitmq plugin on kubernetes?
但是有 无引用 rabbitmq 运算符 并在 中询问2018 年 6 月 .同样在 rabbitmq 运算符(operator)配置中,没有任何关于使用生命周期 Hook 挂载 ez 文件的引用。
1 个想法 我想到的是创建我自己的 rabbitmq 图片 引用 rabbitmq 官方图片并添加插件。
FROM rabbitmq:3.8.8-management

RUN apt-get update

RUN apt-get install -y curl

RUN curl -L https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.8.0/rabbitmq_delayed_message_exchange-3.8.0.ez > $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.8.0.ez

RUN chown rabbitmq:rabbitmq $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.8.0.ez

RUN rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange

RUN rabbitmq-plugins enable --offline rabbitmq_consistent_hash_exchange
一个 第二个想法是通过使用文件定义配置映射并使用volumeMounts将文件挂载到pod文件目录中,但我找不到任何将volumeMounts与rabbitmq运算符一起使用的引用。
有没有 首选方式任何其他方式来启用它 ?

最佳答案

这个插件 可以是启用 通过使用 自定义 Docker Rabbitmq 镜像 安装插件后:

FROM rabbitmq:3.8.8-management

RUN apt-get update

RUN apt-get install -y curl

RUN curl -L https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.8.0/rabbitmq_delayed_message_exchange-3.8.0.ez > $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.8.0.ez

RUN chown rabbitmq:rabbitmq $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.8.0.ez

RUN rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange

RUN rabbitmq-plugins enable --offline rabbitmq_consistent_hash_exchange
通知:对于不可变的结果或如果您不能依赖外部更改,请将插件下载到您的机器并使用 COPY 而不是使用 RUN curl...确保您的机器中有 rabbitmq_delayed_message_exchange .ez 文件。
  • 将您的图像推送到容器注册表。

  • 然后定义你的 RabbitmqCluster 作为:
    apiVersion: rabbitmq.com/v1beta1
    kind: RabbitmqCluster
    metadata:
    name: definition
    spec:
    image: <container-registry>/<username>/rabbitmq-delayed-message-exchange:3.8.8-management
    replicas: 1
    rabbitmq:
    additionalPlugins:
    - rabbitmq_management
    - rabbitmq_delayed_message_exchange
    service:
    type: LoadBalancer
    通知:将图像更改为您推送的图像。

    关于docker - 如果在 kubernetes 中使用 rabbitmq 操作符部署 rabbitmq,如何启用 rabbitmq 插件 "rabbitmq_delayed_message_exchange",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64213779/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com