使用Mesos&amp ;;将Azure容器服务中的容器链接起来。马拉松

时间:2016-04-03 18:26:59

标签: azure docker mesos marathon orchestration

我尝试使用Mesos& amp;在微软新的Azure Container Service上部署一个简单的WordPress示例(WordPress和MySQL数据库)。 Marathon作为底层编排平台。我已经在谷歌(Kubernetes)和亚马逊(ECS)提供的服务上运行了这一点,并认为这对ACS来说也是一件容易的事。

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

到目前为止我尝试了什么:

  1. 使用Mesos DNS来获取MySQL容器主机(现在我并不关心我得到哪个容器)。我将WORDPRESS_DB_HOST环境var设置为mysql.marathon.mesos,并按照建议here指定MySQL容器的主机。

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

  3. 出现了另一个问题,在Port Mappings Section和Optional Settings部分设置Port之间,他们在Marathon中有什么不同。 (见附件截图)

    更新:如果我使用mysql.marathon.mesos进入主节点而不是我可以挖掘,那么我怎么能从其他容器中获得连接呢?在我的情况下wordpress容器)。

    Port Mapping in Marathon

1 个答案:

答案 0 :(得分:0)

所以这里基本上有两个问题:一个是关于Marathon的有状态服务,另一个是关于端口管理。首先让我澄清一下,首先不要对Azure或ACS做任何事情,它们都与马拉松相关。

Q1 :有状态服务

根据您的要求(开发/测试或产品),您可以使用Marathon的persistent volumes功能(简单但没有自动故障转移/ HA用于数据),或者,因为您使用的是Azure,所以我可以使用强大的解决方案显示here(基本上安装了文件共享)。

Q2 :端口

您在Marathon UI屏幕截图中看到的端口映射仅在您启动Docker镜像并希望在BRIDGE模式下将容器端口明确映射到主机端口时才相关,有关详细信息,请参阅docs