2016-04-03 45 views
0

我正在试图部署一个简单的WordPress示例(WordPress & MySQL数据库),这个示例使用Marathon作为底层的业务流程平台。我已经在谷歌(Kubernetes)和亚马逊(ECS)提供的服务上实现了这一点,并认为这对ACS也是一件容易的事情。使用Mesos&Marathon将Azure容器服务中的容器链接起来

我有我的Mesos集群部署,一切都已启动并运行。部署MySQL容器也不是问题,但是当我部署我的WordPress容器时,我无法连接到我的MySQL容器。我想这可能是因为MySQL运行在不同的Mesos代理上?

我试过到目前为止:

  1. 使用Mesos DNS得到阿霍德MySQL的容器主机(现在我真的不关心我得到阿霍德哪个容器)。我将WORDPRESS_DB_HOST环境变量设置为mysql.marathon.mesos,并将MySQL容器的主机指定为建议的here

  2. 我为Azure本身的代理负载平衡器和端口3306创建了一个新规则,这种方式很有效,但似乎是一种非常复杂的方式来实现这样简单的事情。在Kubernetes和ECS链接中,可以通过使用容器名称作为主机名来简单定义链接。

另一个问题出现了,他们在Marathon中设置端口映射部分和可选设置部分中的端口之间有什么不同。 (见截图附后)

更新:如果我ssh到比我可以通过使用mysql.marathon.mesos挖主节点,怎么过我不能去从其他容器内工作的连接(以我的案例wordpress容器)。

Port Mapping in Marathon

回答

0

所以基本上有此两个问题:一是各地对马拉松状态的服务,其他各地的港口管理。首先让我澄清,首先,Azure或ACS都不需要做任何事情,它们都是与Marathon相关的。

Q1:状态服务

根据您的要求(开发/测试或正式版)您可以使用马拉松的persistent volumes功能(简单,但没有自动故障转移/ HA的数据),或者,因为你是在Azure,像我显示的一个强大的解决方案here(基本上安装文件共享)。

Q2:端口

您在马拉松UI截图中看到的端口映射仅当您启动一个码头工人形象,要明确地映射集装箱港口到主机端口BRIDGE模式相关,请参见docs了解详情。

+0

考虑到我的WordPress的例子,如何在我的情况下实际工作,我没有看到我如何利用持续卷在这种情况下的优势?关于端口:是的,我期望它能够工作,但是我似乎无法从我的WordPress容器中访问我的MySQL主机,即使启用了端口映射,我甚至会用什么作为主机名? –

+0

一种方法是使用约束将两个容器(WP和MySQL)绑定到同一个节点上(详情请参阅https://mesosphere.github.io/marathon/docs/constraints.html),然后创建一个持久卷。这与持久卷一起防止容器故障,但是对于节点故障,您需要文件共享装载变体。 –

+0

顺便说一句,因为有多个问题,这变成了一个讨论:你可以请加入http://chat.mesosphere.com/并在Slack上进行讨论,一旦我们完成了,我在这里更新它? –

相关问题