多区域Azure容器服务DC/OS群集

Tro*_*eim 8 azure dcos azure-container-service

我正在使用DC/OS协调器对ACS进行一些实验,虽然在单个区域内启动集群似乎很简单,但我不太确定在多个区域进行部署的最佳做法是什么.

Azure本身现在似乎不支持部署到多个区域.有了这个假设,我想我唯一的另一个选择是在我希望可用的所有区域中创建多个相同的集群,然后使用Azure Traffic Manager将传入流量路由到最近的可用集群.

虽然这个解决方案有效,但它也会导致一些我不能100%确定如何解决的问题.

  1. 在部署新版本的服务时,我们的部署管道必须确保部署到所有区域.如果我们有美国东部和北欧地区,在我们的CI工具部署期间,我必须连接到两个地区的Marathon API以触发新部署.如果部署在一个地区失败,而在另一个地区取得成功,我突然在两个地区之间出现差异.
  2. 如果我有一个部署了本地持久卷的服务,比如PostgreSQL或ElasticSearch,它需要在两个区域都有实例,因为服务发现只能找到该区域的本地服务.这就产生了区域之间复制的问题,以保持所有区域的所有状态; 这似乎需要一些/大量的手动配置才能开始工作.

有没有人曾经使用Azure容器服务(或者真正的亚马逊容器服务,因为我假设可以在那里找到相同的挑战)使用类似的设置,并有一些指示如何处理这个?

rga*_*ler 0

您是对的,ACS 目前不支持多区域部署。

您的第一个问题特定于 DC/OS 中的 Marathon,我将联系那里的一些工程人员,看看他们是否对最佳实践有任何意见。

你的第二点是我们(我是 ACS PM)正在关注的问题。您可以在某些场景中使用一些解决方案(例如,ArangoDB 位于 DC/OS 领域并将提供复制)。DC/OS 团队可能也有话要说。在 ACS 中,我们正在评估为该用例提供解决方案的最佳方法,但恐怕我无法给出任何时间表。

另一种解决方案是将数据库纳入 SaaS 产品中。这消除了管理冗余和复制的所有复杂性。