我看到一些关于在Docker容器中运行markogic集群的文档,但不确定是否有人在生产中运行marklogic docker容器。
任何人在docker容器中使用marklogic进行生产服务?
答案 0 :(得分:4)
如果你问在Docker中是否有人在生产中使用MarkLogic,是的,我知道人们成功地这样做了。 如果你问它是否准备好生产' (标题)或MarkLogic支持'或者在Docker中经过测试或认证,这将是您的销售或支持代表的问题。通常这种开放式问题有一个类似的开放式答案。例如,有许多Linux操作系统发行版都不支持'也没有经过认证的'也没有经过测试,但事实上工作,你可能发现支持可以帮助你解决问题或修复你报告的错误。同样,支持'取决于配置和用例的操作系统不能正常工作或需要比通常的自定义更多的操作系统。
在docker中需要注意的事项 - 这也与VM中的问题类似(并非所有这些问题都得到支持,但在生产站点中使用)。 其中许多都可以解决。
内存调整 - 许多Docker容器'看'主机(或VM)的内存配置。 MarkLogic基于此做出了几个初始内部配置选择。因此,例如,如果你有一个巨大的主机(比如512 GB RAM)但是一个小的docker容器(比如说1GB) - ML 可以配置内存使用,调整为512 GB运行。这可能导致问题像启动时崩溃一样极端。
核心/处理器使用。与内存使用类似,docker容器可能会看到'主机服务器/ os / vm和over-subscribe的总核心数。
IO性能。与所有ML安装一样,您可以有效地配置IO资源。对于docker而言,对于主机来说通常更难以这样做。
网络。 Docker正在迅速发展。网络层非常复杂,可以跨实现变化,并且跨配置实现单一实现。 MarkLogic有简单的要求 - 最相关的是,它在ML服务器中设置的主机名可以在群集中的所有其他ML服务器中解析到同一主机。由您来配置docker以便管理此要求。与在云中运行类似,ML默认情况下将ML服务器的生命周期与其数据的生命周期(/ var / opt / MarkLogic)相关联。如果停止并启动docker实例,则不仅主机名可能会更改,而且数据卷可能会更改。由您来配置,所以他们不这样做。
还有许多其他考虑因素。通常,它们在VM或云环境中运行服务器的性质非常相似。关于主机系统的行为方式有一些基本的假设,这些假设通常对于“裸机”而言是正确的。知识操作系统的安装,但在虚拟机和其他更多软件定义的平台上,并不容易确定并具有更高的可变性 - 因此更难以测试甚至讨论。
参考文献:2017年MarkLogic World讨论 https://www.marklogic.com/resources/chicago-lightning-talks/