我正在试图部署一个简单的WordPress示例(WordPress & MySQL数据库),这个示例使用Marathon作为底层的业务流程平台。我已经在谷歌(Kubernetes)和亚马逊(ECS)提供的服务上实现了这一点,并认为这对ACS也是一件容易的事情。使用Mesos&Marathon将Azure容器服务中的容器链接起来
我有我的Mesos集群部署,一切都已启动并运行。部署MySQL容器也不是问题,但是当我部署我的WordPress容器时,我无法连接到我的MySQL容器。我想这可能是因为MySQL运行在不同的Mesos代理上?
我试过到目前为止:
使用Mesos DNS得到阿霍德MySQL的容器主机(现在我真的不关心我得到阿霍德哪个容器)。我将WORDPRESS_DB_HOST环境变量设置为
mysql.marathon.mesos
,并将MySQL容器的主机指定为建议的here。我为Azure本身的代理负载平衡器和端口3306创建了一个新规则,这种方式很有效,但似乎是一种非常复杂的方式来实现这样简单的事情。在Kubernetes和ECS链接中,可以通过使用容器名称作为主机名来简单定义链接。
另一个问题出现了,他们在Marathon中设置端口映射部分和可选设置部分中的端口之间有什么不同。 (见截图附后)
更新:如果我ssh到比我可以通过使用mysql.marathon.mesos挖主节点,怎么过我不能去从其他容器内工作的连接(以我的案例wordpress容器)。
考虑到我的WordPress的例子,如何在我的情况下实际工作,我没有看到我如何利用持续卷在这种情况下的优势?关于端口:是的,我期望它能够工作,但是我似乎无法从我的WordPress容器中访问我的MySQL主机,即使启用了端口映射,我甚至会用什么作为主机名? –
一种方法是使用约束将两个容器(WP和MySQL)绑定到同一个节点上(详情请参阅https://mesosphere.github.io/marathon/docs/constraints.html),然后创建一个持久卷。这与持久卷一起防止容器故障,但是对于节点故障,您需要文件共享装载变体。 –
顺便说一句,因为有多个问题,这变成了一个讨论:你可以请加入http://chat.mesosphere.com/并在Slack上进行讨论,一旦我们完成了,我在这里更新它? –