Boogie Software是欧洲著名的金融科技公司,多年来致力于为银行提供Fintech、AI、大数据高性能后端、移动应用程序、数据分析及UX等创新服务,帮助银行推动数字化转型。凭借过去十多年在该领域的独特经验,Boogie已成为数字银行服务提供商中的领导者。
本文作者是Boogie Software的资深软件架构师Jari Tenhunen。他拥有超过15年的软件开发经验,擅长信息安全和网络协议。并且长期管理项目和团队,在其中主导软件架构和技术,成功将多个产品推向市场。
Boogie Software的IT团队在很多客户银行的核心银行业务数字化的项目中使用到了Kubernetes和容器技术,因此我们始终在想Kubernetes能如何使用更合适的硬件在本地工作。在本文中,我将详细介绍我们如何在树莓派上构建轻量级裸机集群,以在公司网络中运行应用程序和服务。
我们之所以这么做,有两个原因:第一,通过建立集群,我们将可以拥有一个平台,来可靠、灵活地运行公司网络内部应用程序和服务;第二,我们可以通过这次机会学习更多关于Kubernetes、微服务以及容器的技能。如果你也想要参照我们的经验来构建一个相似的系统,我建议你至少要了解关于Docker容器、Kubernetes关键概念(节点、pod、服务、deployment等)以及IP网络的基础知识。
硬件准备
你需要准备以下设备:
-
树莓派2B/3B/3B+ 的型号,至少一个。你甚至在单个开发板上运行某些应用程序,但是建议使用两个或更多的开发板来分散负载并增加冗余。
-
电源和可用于树莓派的SD卡,现有的以太网交换机或空闲端口以及一些电缆。
在我们的设置中,我们目前有4个树莓派3代B+开发板,所以在集群中有一个master/server和3个代理节点。如果树莓派有外壳当然更好,我们的同事用3d打印机设计了一个。此外,机壳的背面有两个用于冷却的风扇,每个开发板都位于一个托盘上,该托盘可以热插拔以进行维护。这些托盘前面还设有activity/heartbeat LED和电源开关的位置,它们都连接到开发板的GPIO接头。
软件准备
对于Kubernetes的实现,我们使用的是k3s。k3s是由Rancher Labs推出的一款轻量级、通过CNCF一致性认证的Kubernetes发行版。尽管这是一款刚推出不久的产品,但它真的十分稳定和易用,可以实现秒级启动。让k3s从其他轻量的Kubernetes发行版脱颖而出的原因是,k3s可供生产使用,而诸如microk8s或Minikube之类的项目则无法实现这一目的,并且k3s十分轻巧,还可以在基于ARM的硬件上很好地运行。在k3s中,任何设备上安装Kubernetes所需的一切都包含在这一个40MB的二进制文件当中。
k3s几乎能在任何Li