每个环境的 Nomad 集群

Nomad cluster per environment

在 environments/deploy-stage 的上下文中,Nomad 编排的 standard/convention 是什么?人们通常每个环境都有一个 Nomad 集群,还是所有环境共享一个集群?除了成本影响,这两种方法的优缺点是什么?

我想你会发现在大多数情况下没有约定,这实际上取决于你想要达到的结果。

拥有更大的集群 运行 多个环境的好处是您可以事半功倍 - 即 运行 更少的硬件,因为您可以在同一集群中的多个服务之间共享它.

为单独的环境使用单独的集群的好处是你有一个更小的 blast zone/radius,你的生产环境不会与你的开发并存,所以当有人不小心破坏了开发环境中的某些东西时,它不会影响你的生产环境。除此之外,它还为您提供了升级路径,即您可以先尝试在开发中升级您的 Nomad 集群,而不是在生产集群上进行升级。

我认为采取平衡的方法是有意义的:

  • 1 个用于测试环境的集群 - 即使您有多个
  • 1 个集成环境集群 - 即使您有多个
  • 1 个用于生产环境的集群 - 即使您有多个

这是一篇关于因单集群方法而崩溃的高级应用程序的非常好的读物:https://www.theregister.co.uk/2017/10/31/kubernetes_bug_bank_app_monzo/