我刚刚完成了基于 Dokku 的基础设施的设置,但我很好奇如何扩展它。我按照本教程进行了操作数字海洋,但没有提及 HA 或可扩展性。
是否可以对 dokku 实例进行负载平衡?如何为这种基于 docker 的基础设施提供 HA?我应该改用 Deis 还是等待 Flynn 发布?你们推荐一些关于这个主题的好书吗?
答案1
2019年更新:
Hephy 工作流程是 Deis Workflow 的一个分支。这可能是编辑时对这个问题最合乎逻辑的答案。
Deis 不再是一个有效的答案(而且很长时间以来都是如此)。Deis 已被弃用,取而代之的是一个名为 Deis Workflow 的新平台,这是一个类似于 Deis 的 PaaS,基于 Kubernetes 构建。但 Deis Workflow 也已被弃用。
除了 Hephy 之外,还有弗林。但我不知道该项目的状态。链接已失效。但我会在下面保留原始答案。
Dokku 实际上正在与 OpDemand 和 Deis 合作,为那些想要多主机(反之亦然)的人提供清晰的升级路径。请参阅http://deis.io/deis-sponsors-dokku/和http://progrium.com/blog/2014/10/28/deis-breathes-new-life-into-dokku/。
Deis 将为您提供:
- 多个路由器用于平衡您的实例的负载。
- 扩展实例的命令(非常类似于 Heroku)。
- 这种架构要求您在 3 个或更多主机上运行,从而获得一定的容错能力和开箱即用的高可用性。
因此,要回答这个问题,更“官方”的方式很快将是来自 Dokku 世界时设置和使用 Deis。
答案2
Dokku 维护者在这里。
Dokku 0.33.x 带有 k3s 集成,并通过 k3s Kubernetes 实现提供与我们的单服务器产品相同的部署体验。添加和删除节点非常简单(scheduler-k3s:cluster-add/cluster-remove
),并且通常使用 Dokku 执行的所有操作都可以使用 k3s 实现,例如部署 cron 作业、进入正在运行的容器以及使用 letsencrypt 配置 Web 服务。
旧回复
提供自定义调度程序(如 Flynn 或 Nanobox 等软件提供的调度程序)不太可能发生。相反,我们将支持与现有解决方案(如 ECS、Kubernetes 和 Nomad)集成。目前,我们正在开发一些 HA 选项,这些选项利用插件架构为 Dokku 提供替代调度程序。
- Kubernetes:https://github.com/dokku/dokku-scheduler-kubernetes
- 游牧民:https://github.com/dokku/dokku-scheduler-nomad
目前两种方法都有效,但选择哪种方法以及如何将它们与基础设施集成取决于您的需求。欢迎加入我们的 Slack/IRC,帮助指导每种集成的未来发展。
此外,Deis 对 Dokku 的支持相当少,而且主要用在共享工具上(herokuish 和一些应用程序构建方面)。这两个项目之间没有其他联系,Dokku 和 Hephy Workflow 之间也没有现有联系(尽管我们祝愿该项目一切顺利!)。我们鼓励人们使用最佳解决方案来解决他们的问题,无论是 Dokku、Flynn、Deis、Heroku 还是任何其他平台。