Rabbitmq:如何创建RABBITMQ_ERLANG_COOKIE

问题描述 投票:1回答:1

我正在尝试在我的kubernetes中部署一个Rabbitmq Pod。因此,我使用了Google托管的Rabbitmq:https://github.com/GoogleCloudPlatform/rabbitmq-docker/blob/master/3/README.md#connecting-to-a-running-rabbitmq-container-kubernetes

在文档中说:正在启动RabbitMQ实例

用有效的cookie值替换your-erlang-cookie。有关更多信息,请参见RABBITMQ_ERLANG_COOKIE in环境变量。

将以下内容复制到pod.yaml文件,然后运行kubectl create -f pod.yaml。

apiVersion: v1
kind: Pod
metadata:
  name: some-rabbitmq
  labels:
    name: some-rabbitmq
spec:
  containers:
    - image: launcher.gcr.io/google/rabbitmq3
      name: rabbitmq
      env:
        - name: "RABBITMQ_ERLANG_COOKIE"
          value: "unique-erlang-cookie"

我如何生成cookie erlang?在互联网上搜索几天后,我什么也没找到。我在Windows中安装了Rabbitmq,但从未生成过Cookie Erlang。

请怎么办?谢谢

kubernetes rabbitmq erlang
1个回答
4
投票

这是任何唯一的价值;唯一的限制是RabbitMQ的每个连接实例(即StatefulSet中的每个Pod)都具有相同的cookie值。

指定此内容的好方法是使用Secret

env:
  - name: RABBITMQ_ERLANG_COOKIE
    valueFrom:
      secretKeyRef:
        name: rabbitmq
        key: erlangCookie

这需要您创建秘密。只是为了提出这一点,您可以运行一次性命令来创建随机的Secret:

kubectl create secret generic rabbitmq \
  --from-literal=erlangCookie=$(dd if=/dev/urandom bs=30 count=1 | base64)

对于实际生产用途,您需要将该凭据存储在安全的地方,并能够在部署时注入(或重新创建)它。管理该问题超出了此问题的范围。

© www.soinside.com 2019 - 2024. All rights reserved.