我正在尝试在我的 kubernetes 中部署一个 rabbitmq pod。所以我使用谷歌托管的 rabbitmq:https://github.com/GoogleCloudPlatform/rabbitmq-docker/blob/master/3/README.md#connecting-to-a-running-rabbitmq-container-kubernetes
在文档中说:启动一个 RabbitMQ 实例
将 your-erlang-cookie
替换为有效的 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。
请问我该怎么办?谢谢
这是任何独特的价值;唯一的限制是每个连接的 RabbitMQ 实例(即 StatefulSet 中的每个 Pod)都具有相同的 cookie 值。
指定这一点的一个好方法是使用 Secret:
env:
- name: RABBITMQ_ERLANG_COOKIE
valueFrom:
secretKeyRef:
name: rabbitmq
key: erlangCookie
这需要您创建 Secret。为了提出这个问题,您可以运行一次性命令式命令来创建随机 Secret:
kubectl create secret generic rabbitmq \
--from-literal=erlangCookie=$(dd if=/dev/urandom bs=30 count=1 | base64)
对于实际生产使用,您需要将该凭证存储在安全的地方,并能够在部署时注入(或重新创建)它。管理这有点超出了这个问题的范围。