dpl*_*esa 4 rabbitmq openshift
我已使用以下图像在OpenShift上创建了新应用:https : //hub.docker.com/r/luiscoms/openshift-rabbitmq/
它运行成功,我可以使用它。我已经添加了一个永久卷。但是,每次重新启动POD时,我都会丢失所有数据。这是因为RabbitMq使用主机名来创建数据库目录。
例如:
node : rabbit@openshift-rabbitmq-11-9b6p7
home dir : /var/lib/rabbitmq
config file(s) : /etc/rabbitmq/rabbitmq.config
cookie hash : BsUC9W6z5M26164xPxUTkA==
log : tty
sasl log : tty
database dir : /var/lib/rabbitmq/mnesia/rabbit@openshift-rabbitmq-11-9b6p7
Run Code Online (Sandbox Code Playgroud)
如何设置RabbitMq始终使用相同的数据库目录?
您应该能够设置环境变量RABBITMQ_MNESIA_DIR以覆盖默认配置。这可以通过OpenShift控制台通过在部署配置中向环境添加条目或通过oc工具来完成,例如:
oc set env dc/my-rabbit RABBITMQ_MNESIA_DIR=/myDir
然后,您需要在所需路径上将持久性卷安装在Pod内。既然您已经说过它已经创建,那么您只需要更新它,例如:
oc volume dc/my-rabbit --add --overwrite --name=my-pv-name --mount-path=/myDir
您将需要确保在提供的安装路径上具有正确的读/写访问权限
编辑:基于注释问题的一些其他解决方法
由动态主机名引起的问题可以通过多种方式解决:
1.(首选IMO)将部署移动到StatefulSet。StatefulSet将提供Pod的命名稳定性和网络标识符,因此必须提供无头服务。自Kubernetes 1.9起,此功能已从Beta版本开始测试,从3.5版开始,此功能已在OpenShift中进行技术预览
oc set env dc/example HOSTNAME=example以使主机名RABBITMQ_NODENAME变为静态,并设置为相同来完成。| 归档时间: |
|
| 查看次数: |
5242 次 |
| 最近记录: |