搭建树莓派集群+K3S+OpenFaaS

为了搭建弹性计算平台和计算集群,Kubernetes已经成为必备组件。然而Kubernetes对性能需求较大,K3s作为完全基于Kubernetes核心的缩小版,完全包括了kubernetes的基本功能。

本文尝试利用树莓派搭建一个K3s集群。

物料清单:

1.Raspberry Pi4 x 1
2.Raspberry Pi3 x 2
3. 5口USB电源
4. 树莓派集群散热架

步骤:

创建SSH连接

1.首先创建ssh key在本机电脑ssh-keygen -t rsa -b 4096

在.ssh文件夹会产生两个文件,一个是id_rsa.pub,另一个是id_rsa

2.复制 id_rsa.pub 到树莓派的authorized_keys文件夹登录树莓派

ssh 192.168.1.?? -l pi

然后执行以下操作

mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys
nano ~/.ssh/authorized_keys

将id_rsa.pub内部内容复制到authorized_keys
3.更改树莓派默认用户pi默认密码sudo passwd pi
4.更改树莓派网络用户名sudo raspi-config,选择Network Option,选择hostname更改名字为k4s-1,完成选择reboot,树莓派会断开连接并重启。

如果有多个树莓派,重复1-4操作

5.免输入用户名登录方法打开C:\Users\$username\.ssh\ 创建文件名为config的文本文件


Host k4s-1-pi4
  HostName 192.168.1.99
  User pi

下次登录即可使用 ssh k4s-1-pi4


6.登录到树莓派

7.更改cgroup设置打开 /boot/cmdline.txt添加以下命令到文件最后

cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory

关于cgroup原理参考下边连接https://www.infoq.cn/article/docker-kernel-knowledge-cgroups-resource-isolation

安装K3S

8.安装k3s master端,并查看k3s状态

 curl -sfL https://get.k3s.io | sh -
 kubectl get nodes


9. k3s server 的node-key需要保存下来,给所有的worker。执行以下操作,将得到的key保存

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

我得到的key如下
K10bcd35521f7980d2c41c9af6dd754f37702202b116c5ea0792a59c3b1eaf67693::server:8cac0be753b8394e93a4b8b7bfd5b407

9.登录到k3s worker树莓派

声明bash变量,使用K3S_URL是master端ip地址

export K3S_URL="https://192.168.1.99:6443"
export K3S_TOKEN="K10bcd35521f7980d2c41c9af6dd754f37702202b116c5ea0792a59c3b1eaf67693::server:8cac0be753b8394e93a4b8b7bfd5b407"10.安装k3s worker端curl -sfL https://get.k3s.io | sh -


在master端输入sudo kubectl get nodes应该能看到一个新的节点
安装完成
注意:安装完成后,k3s并没有安装docker

安装openfaas for Raspbery Pi

以下步骤都是在master端执行的

10.安装openfaas-cli

curl -sL https://cli.openfaas.com | sudo sh


11.下载 openfaas的faas-netes仓库

git clone https://github.com/openfaas/faas-netes.git


13.打开 faas-netes 文件夹

cd faas-netes

14.为openfaas添加两个namespace,一个是openfaas核心服务,一个是openfaas函数服务

sudo kubectl apply -f namespaces.yml


15.通过yml模板安装openfaas,注意只有yaml_armhf文件夹下的yaml文件是给树莓派的,用其他模板暂时不好使

sudo kubectl apply -f ./yaml_armhf/


16.查看安装是否成功

sudo kubectl get pods --all-namespaces


17. 打开网页端查看是否成功

http://raspberrypi_IPADDRESS:31112

18.随意安装一个function。安装function既可以从网页端安装,也可以从命令行安装。如果要通过命令行安装openfaas store的function 需要指定网关地址,不然会找不到openfaas网关

export OPENFAAS_URL=127.0.0.1:31112


查看store下默认的funciton

faas-cli store list


随意挑选一个安装

fast-cli store deploy figlet

也可以通过网页端安装

comments powered by Disqus