【问题标题】:CF Bosh Director Multi-DC High AvailabilityCF Bosh Director 多数据中心高可用性
【发布时间】:2019-09-07 10:12:39
【问题描述】:

我正在研究 Cloud Foundry 的新架构部署,它使用多 cpi 和单个 BOSH 导向器部署。如果 BOSH director 部署在 DC-A 并管理 2 个 vCenter,一个在 DC-A,另一个在 DC-B,如果 DC-A 下线,BOSH 在 DC-B 运行主备的选项有哪些以便它可以立即接管部署而无需执行备份和恢复?

【问题讨论】:

    标签: cloud-foundry cf-bosh bosh


    【解决方案1】:

    是的,具有多 CPI BOSH 的多 DC BOSH 部署运行良好!当人们想到这种多 DC 设计时,您的问题经常被提出。

    BOSH Director 没有高可用性 (HA),而且我现在知道没有主动/被动设置。这样做的原因是,失去一位 BOSH 董事并不是什么大不了的事。该 Director 管理的节点仍将在基础架构之上运行。除非你把你的主管带回来,否则它们将无法“管理”。

    但如果我们考虑这种主动/被动设置的要求,我会想到以下内容:

    1. 他们必须共享完全相同的 CPI 安装和设置。没什么大不了的。

    2. 他们必须共享同一个 SQL 数据库和同一个 blobstore(对象存储)。这没什么大不了的,但这会导致同时使用外部 SQL 存储和外部 blobstore。然后,“被动” BOSH Director 至少必须禁用其 resurrector 插件,以免与“主动” BOSH Director 的 resurrector 竞争。 (实际上,被动的 BOSH Director 必须完全停止,见下文。)

    3. 它们必须共享相同的 NATS 消息总线,该总线通常位于 BOSH Director 上,因此专用于它。从 Director 中提取此 NATS 并使用高可用性设置单独运行它很容易。但接下来的问题是:哪个 Director 使用 NATS 消息?两个 Director 不能竞争使用这些消息。这就是为什么“被动” BOSH Director 会要求其进程为monit stop-ed,或整个实例为bosh stop-ed。

    4. 使用 bosh CLI(v2,包括这个 bosh-init 组件,它可以像本地的精简 BOSH Director 一样工作)无法实现此 bosh stop 要求。因此,这两个 BOSH Director 必须由“引导”BOSH Director 部署(这很常见,我什至在某些客户生产环境中看到了这种引导 Director 模式的多达四个阶段!)

    5. 现在想象一下,你已经拥有了一切。一个引导 BOSH Director,部署一个单独的 HA NATS 和两个 Director,具有相同的 CPI 设置、相同的外部 SQL 数据库和相同的外部 blobstore。然后它会工作!每当您松开主动者时,您bosh start 被动者就会接管。但是你应该小心,以前活动的那个不会突然弹出,否则它会竞争消耗 NATS 消息,并可能弄乱数据库和 blobstore。这就是 BOSH 缺少一些“锁定”功能的地方,即一次只允许一个活动的 Director。在这里,可以根据一些数据库记录来实现一些非常简单的事情,这些记录将指定哪个是主动的,哪个是被动的。手动切换此记录会触发被动 Director 变为主动。

    这是下一个 Cloud Foundry 黑客马拉松的好主意!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-14
      • 2011-03-30
      相关资源
      最近更新 更多