我想基于低功耗架构(arm)设置HA swarm / kubernetes集群。 我的主要目标是了解HA网络集群的工作原理,它如何对故障作出反应并从故障中恢复,规模是多么容易。
我希望在它上面有一个博客以及其他服务(git / custom services / home automation / CI server / ...)。
以下是我的第一个问题:
退出硬件,哪个更合适? Rpi3或Odroid-C2还是其他什么?我打算有4-6个节点启动。低功耗对我来说很重要,因为它将在家中全天候运行
最好的架构是什么?我想在容器中运行所有内容(用于可伸缩性和减少性),并且具有冗余负载平衡器,Web服务器和数据库。这样的事情:architecture
是否可以在所有群集上分布Web服务器/数据库,并在2-3个节点上进行负载均衡?或者将它物理分离是否更好?
哪种技术更适合(swarm / kubernetes / ansible部署/ flocker用于存储)?我最近读了很多这个话题,但是有很多选择。
感谢您的回答!
我几乎掌握了所有材料,现在我正在寻找一种轻松管理和部署5个(或更多)PI的方法。我希望程序尽可能具有可扩展性。
有没有办法:
我可以使用专用的PI或我的PC作为部署服务器。
感谢您的投入!
答案 0 :(得分:2)
Raspberry Pi,ODroid,CHIP,BeagleBoard都是合适的硬件。 请注意,如果您经常读/写闪存卡,其使用寿命有限。
Kubernetes是学习群集容器的绝佳选择。 Docker Swarm也不错。 这些解决方案都没有提供分布式存储,因此如果您谈论的是未分发的PHP类型的Web服务器和SQL数据库,那么即使使用Kubernetes或Swarm,您也无法实现冗余。 要有效地冗余,您需要为数据库建立主/从设置,或者更好的是像elasticsearch这样的集群数据库,或者可能是MariaDB for SQL的集群版本,因此您拥有数据库集群本身提供的冗余(这不是备份的替代品) ,但它比单个容器更好)
对于真正的分布式存储,您需要查看Ceph或GlusterFS等技术。这些与Kubernetes或Swarm不兼容,因为它们需要与硬件绑定。在Github上有一个docker / kubernetes Ceph项目,但我会说它仍然有点hacky。 更好地单独或直接在主机上提供。
就负载平衡而言,您希望有一些带有外部负载平衡器的节点用于冗余,如果您构建Kubernetes集群,则不会真正选择在同一节点上运行的其他节点,除非指定CPU / RAM配额和限制,或亲和力。
答案 1 :(得分:0)
如果您想尝试使用Kubernetes中的Raspberry Pi 3,这是setup your Kubernetes cluster with Raspberry Pi 3的分步教程:
为防止出现读/写问题,您可以考虑购买和使用其他NAS设备并将其作为volume安装到您的播放器
完全同意MrE与PHP类似的分布式存储。音量寿命是每个pod,并且与pod相关联。所以你不能在pod之间共享一个卷。