RabbitMQ Persistence with Azure Fileshare

670 Views Asked by At

RabbitMQ cannot start when using azure fileShare as storage of rabbit volume. It is throwing error

Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only

I cannot do chmod 400 /var/lib/rabbitmq/.erlang.cookie since the pods is crashing before start.

Anyone having a similar issue?

Below is my manifest file.

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-azure-file-static-mi
  labels:
    app.kubernetes.io/name: csi-test
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteMany
  csi:
    driver: file.csi.azure.com
    readOnly: false    
    volumeHandle: csi-test-109222 
    volumeAttributes:
      resourceGroup: RG
      storageAccount: test
      shareName: bob3
  mountOptions:
  - dir_mode=0777
  - file_mode=0777
  - uid=1000
  - gid=1000
  - mfsymlinks
  - nobrl
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-azure-file-static-mi
  labels:
    app.kubernetes.io/name: csi-test
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: ""
  volumeName: pv-azure-file-static-mi
  resources:
    requests:
      storage: 1Gi
---
apiVersion: v1
kind: Service
metadata:
  name: rabbit
  labels:
    app: rabbit
    name: rabbit
spec:
  type: NodePort
  ports:
    - port: 15672
      targetPort: 15672
  selector:
    app: rabbit
    name: rabbit

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: rabbit
  labels:
    app: rabbit
    name: rabbit
spec:
  replicas: 1
  selector:
    matchLabels:
      app: rabbit
      name: rabbit
  template:
    metadata:
      labels:
        app: rabbit
        name: rabbit
    spec:
      hostname: rabbit
      containers:
      - name: rabbit
        image: rabbitmq:3.8.0-management
        imagePullPolicy: Always
        ports:
          - name: http
            containerPort: 15672
            protocol: TCP
          - name: amqp
            containerPort: 5672
            protocol: TCP
        resources:
          limits:
            cpu: 1
            memory: 1024Mi
          requests:
            cpu: 200m
            memory: 512Mi
        volumeMounts:
        - name: volume
          mountPath: "/var/lib/rabbitmq"
      volumes:
        - name: volume
          persistentVolumeClaim:
            claimName: pvc-azure-file-static-mi

Logs

Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0>
supervisor: {local,net_sup} 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0> errorContext: start_error 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0> reason: {"Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only", 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0>
[{auth,init_no_setcookie,0,[{file,"auth.erl"},{line,293}]}, 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0>
{auth,init,1,[{file,"auth.erl"},{line,144}]}, 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0>
{gen_server,init_it,2,[{file,"gen_server.erl"},{line,423}]}, 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0>
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,390}]}, 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0>
{proc_lib,init_p_do_apply,3, 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0>
[{file,"proc_lib.erl"},{line,226}]}]} 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0> offender: [{pid,undefined}, 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0> {id,auth}, 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0>
{mfargs,{auth,start_link,[]}}, 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0> {restart_type,permanent}, 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0>
{significant,false}, 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0> {shutdown,2000}, 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0>
{child_type,worker}] 2022-03-10 06:55:02.847364+00:00 [erro] <0.143.0> 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0> crasher: 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0> initial call: auth:init/1 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0> pid: <0.145.0> 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0>
registered_name: [] 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0> exception error: "Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only" 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0> in function auth:init_no_setcookie/0 (auth.erl, line 293) 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0> in call from auth:init/1 (auth.erl, line 144) 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0> in call from gen_server:init_it/2 (gen_server.erl, line 423) 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0> in call from gen_server:init_it/6 (gen_server.erl, line 390) 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0>
ancestors: [net_sup,kernel_sup,<0.47.0>] 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0> message_queue_len: 0 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0> messages: [] 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0> links: [<0.143.0>] 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0>
dictionary: [] 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0>
trap_exit: true 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0>
status: running 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0>
heap_size: 610 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0>
stack_size: 29 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0>
reductions: 2022 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0>
neighbours: 2022-03-10 06:55:02.847486+00:00 [erro] <0.145.0> 2022-03-10 06:55:02.855931+00:00 [erro] <0.130.0> 2022-03-10 06:55:02.855931+00:00 [erro] <0.130.0> BOOT FAILED 2022-03-10 06:55:02.855931+00:00 [erro] <0.130.0> =========== 2022-03-10 06:55:02.855931+00:00 [erro] <0.130.0> Exception during startup: 2022-03-10 06:55:02.855931+00:00 [erro] <0.130.0>

1

There are 1 best solutions below

0
On

Switching to rabbitMQ version v3.9.9 from v3.8.0 and mounting /var/lib/rabbitmq/mnesia instead of /var/lib/rabbitmq solves the issue for me in mounting rabbitmq volume to fileshare in Azure.