基於樹莓派搭建小型雲計算叢集

擁有一個私人的雲計算平臺是一件很酷的事情。隨著技術的發展,實現這一願望已經變得相當容易。接下來就來說明如何利用樹莓派硬體和相關軟體搭建一個用於邊緣計算的小型雲計算叢集。

1 硬體準備

硬體優先考慮樹莓派。選擇ARM而不是x86架構硬體,主要是考慮到該雲計算平臺主要用於私人,家庭以及邊緣計算等應用場景。一方面,ARM硬體相對便宜,功耗低,價效比更高;另一方面樹莓派擁有成熟的社群生態,可用的軟體也比較豐富。

選擇1。 樹莓派3B及其之前的版本

樹莓派3B及其之前的版本由於不支援乙太網口供電(PoE), 因此需要額外的USB供電插頭。所有樹莓派板子都連線到一個交換機/路由器,如下圖所示

基於樹莓派搭建小型雲計算叢集

選擇2。 樹莓派3B+,樹莓派4B

樹莓派3B+/4B擁有乙太網口供電(PoE)功能, 因此可省去USB供電插頭。所有樹莓派板子都連線到一個支援PoE功能的交換機/路由器,如下圖所示

基於樹莓派搭建小型雲計算叢集

選擇3。 Turing Pi主機板 + 樹莓派計算模組

關於樹莓派計算模組

上面介紹的樹莓派3B, 3B+, 4B等板子其實可以拆解成如下兩部分,即: 計算模組和計算模組IO擴充套件板。

基於樹莓派搭建小型雲計算叢集

基於樹莓派搭建小型雲計算叢集

基於樹莓派搭建小型雲計算叢集

基於樹莓派搭建小型雲計算叢集

將計算模組和計算模組IO擴充套件板結合起來功能就和上述的樹莓派3B, 3B+, 4B 一致。

基於樹莓派搭建小型雲計算叢集

關於Turing Pi主機板

利用Turing Pi主機板加可擴充套件樹莓派計算模組的方式搭建叢集十分的方便。該板最大支援7塊樹莓派計算模組,並可進行動態擴充套件,類似於資料中心的刀鋒伺服器 (blade server)。

基於樹莓派搭建小型雲計算叢集

Turing Pi同時支援帶eMMC的計算模組和不帶eMMC的計算模組,其第一個槽可用於燒寫作業系統映象到計算模組eMMC。對於不帶eMMC的計算模組可以透過傳統的插SD卡的方式啟動。

2 燒寫樹莓派系統

2。1 系統選擇

推薦如下兩個系統

Raspbian: 官方系統

HypriotOS: 容器作業系統

2。2 燒寫系統

選擇1。 燒寫系統到SD卡

具體步驟參考 https://www。raspberrypi。org/documentation/installation/installing-images/README。md

選擇2。 燒寫系統到樹莓派計算模組的eMMC

具體步驟參考 http://raspberrypiwiki。com/How_to_Burning_System_for_the_eMMC_of_Raspberry_Pi_Compute_Module

所有單板都燒寫好後按照硬體準備中的描述連線好,並將每個板子配置好ssh連線,將公鑰放置在~/。ssh/authorized_keys裡面,以方便連線。確保可以透過***ssh @***能連上叢集中每一個樹莓派節點。

3 安裝Kubernetes並連線叢集

3。1 安裝Kubernetes

Lightweight Kubernetes (K3S) 是一個面向IoT及邊緣計算的Kubernetes版本,比較適合樹莓派等資源有限的硬體。

方式1:在每個樹莓派板子上單獨安裝

在server節點上執行

curl -sfL https://get。k3s。io | sh -

在每個worker節點上執行

curl -sfL https://get。k3s。io | K3S_URL=https://:6443 K3S_TOKEN=

sh -

PS: K3S_TOKEN: 存在server節點的

/var/lib/rancher/k3s/server/node-token

方式2:使用Ansible自動化安裝

先在控制機上安裝Ansible

sudo apt update

sudo apt install software-properties-common

sudo apt-add-repository ——yes ——update ppa:ansible/ansible

sudo apt install ansible

下載k3s-ansible

git clone https://github。com/rancher/k3s-ansible。git

然後按照 https://github。com/rancher/k3s-ansible 的步驟,在inventory/my-cluster/hosts。ini裡配置好server (master) 節點和worker(node)節點的IP地址。

執行如下命令,Ansible會將K3S自動安裝在叢集的server節點和每個worker節點上

ansible-playbook site。yml -i inventory/my-cluster/hosts。ini ——ask-become-pass

3。2 連線叢集

在控制機上安裝kubectl

sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2

curl -s https://packages。cloud。google。com/apt/doc/apt-key。gpg | sudo apt-key add -

echo “deb https://apt。kubernetes。io/ kubernetes-xenial main” | sudo tee -a /etc/apt/sources。list。d/kubernetes。list

sudo apt-get update

sudo apt-get install -y kubectl

將配置檔案從server節點複製至控制機並配置環境變數

scp @:~/。kube/config ~/。kube/rasp-config

export KUBECONFIG=~/。kube/rasp-config

連線檢視叢集

kubectl get nodes

大功告成,接下來就可以部署服務到叢集了。

【轉自https://calinyara。github。io/technology/2020/06/08/raspberry-cluster。html】

基於樹莓派搭建小型雲計算叢集

5T技術資源大放送!包括但不限於:C/C++,Arm, Linux,Android,人工智慧,微控制器,樹莓派,等等。在上面的【

人人都是極客

】公眾號內回覆「

peter

」,即可免費獲取!!