【发布时间】:2019-10-22 11:55:47
【问题描述】:
我正在尝试在 Kubernetes 集群上部署 RabbitMQ,并使用 initcontainer 从 ConfigMap 复制文件。但是,在 POD 处于运行状态后,文件不会被复制。
最初,我尝试不使用 initcontainer,但收到类似“touch: cannot touch '/etc/rabbitmq/rabbitmq.conf': Read-only file system.”之类的错误。
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 deployment read-only filesystem error”。但问题没有解决。
【问题讨论】:
-
很高兴看到 broker01-definitions-cm 配置图定义
-
我正在尝试将 docker-compose 文件转换为 Kubernetes。这是 docker-compose 文件 synatx。
broker01: image: rabbitmq:3.7.17-management env_file: - broker/rabbitmq01/conf/rabbitmq.env networks: - private volumes: - ./broker/rabbitmq01/data:/var/lib/rabbitmq - ./broker/rabbitmq01/conf/definitions.json:/etc/rabbitmq/definitions.json - ./broker/rabbitmq01/log:/var/log/rabbitmq/log dns_search: . restart: always -
文件太大,无法在此处添加,超出字符限制。
标签: kubernetes rabbitmq