RabbitMQ 配置文件无法应对 Kubernetes 部署



我正在尝试在 Kubernetes 集群上部署 RabbitMQ,并使用 initcontainer 从 ConfigMap 复制文件。但是,在 POD 处于运行状态后,文件不会复制。

最初,我尝试不使用 initcontainer,但我收到一个错误,例如"触摸:无法触摸'/etc/rabbitmq/rabbitmq.conf':只读文件系统。

kind: Deployment
metadata:
name: broker01
namespace: s2sdocker
labels:
app: broker01
spec:
replicas: 1
selector:
matchLabels:
app: broker01
template:
metadata:
name: broker01
labels:
app: broker01
spec:
initContainers:
- name: configmap-copy
image: busybox
command: ['/bin/sh', '-c', 'cp /etc/rabbitmq/files/definitions.json /etc/rabbitmq/']
volumeMounts:
- name: broker01-definitions
mountPath: /etc/rabbitmq/files
- name: pre-install
mountPath: /etc/rabbitmq
containers:
- name: broker01
image: rabbitmq:3.7.17-management
envFrom:
- configMapRef:
name: broker01-rabbitmqenv-cm
ports:
volumeMounts:
- name: broker01-data
mountPath: /var/lib/rabbitmq
- name: broker01-log
mountPath: /var/log/rabbitmq/log
- name: broker01-definitions
mountPath: /etc/rabbitmq/files
volumes:
- name: pre-install
emptyDir: {}
- name: broker01-data
persistentVolumeClaim:
claimName: broker01-data-pvc
- name: broker01-log
persistentVolumeClaim:
claimName: broker01-log-pvc
- name: broker01-definitions
configMap:
name: broker01-definitions-cm

文件 "definitions.json" 应该复制到/etc/reabbitmq 文件夹。我关注了"Kubernetes 部署只读文件系统错误"。但是问题没有解决。

在"containers volumeMount"部分进行更改后,我能够将文件复制到/etc/rabbitmq文件夹中。

请在此处找到修改后的代码。

- name: broker01
image: rabbitmq:3.7.17-management
envFrom:
- configMapRef:
name: broker01-rabbitmqenv-cm
ports:
volumeMounts:
- name: broker01-data
mountPath: /var/lib/rabbitmq
- name: broker01-log
mountPath: /var/log/rabbitmq/log
- name: pre-install
mountPath: /etc/rabbitmq

你能检查/etc/rabbitmq/的权限吗? 用户是否有权将文件复制到上述位置?

- name: pre-install
mountPath: /etc/rabbitmq

我看到/etc/rabbitmq 是一个挂载点。 它是一个仅准备好的文件系统,因此文件复制失败。

您可以更新"预安装"挂载点的权限吗

最新更新