树莓派上安装openfaas和初体验

什么是openfaas

openfaas 是一款开源的faas框架,什么是faas,faas是Function as a Service的缩写能够理解为功能服务化,FaaS提供了一种比微服务更加服务碎片化的软件架构范式,可让开发更关注代码开发逻辑,而不须要关注代码架构。openfaas能够在k8s上运行也能够在swarm集群上运行node

实验环境

两个安装着raspbian的树莓派ABlinux

安装docker容器

这个我就再也不详细讲了,很简单,使用下面命令安装git

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyungithub

两个树莓派都要安装web

初始化swarm集群

两条命令docker

在树莓派A中启动集群json

docker swarm init浏览器

以后把把树莓派B加入到树莓派A master节点中bash

docker swarm join --token SWMTKN-1-1vpekrn4tldy8b2b80qgni5ns8ggk3y3lsm022q6b63szhoohg-djfwtkhfb2ileh3fulqo8rgot 10.10.10.108:2377架构

接着在A节点中输入

docker node ls

若是有两个节点,说明集群初始化成功

安装openfaas

这个也很简单

首先在docker swarm master节点中执行

git clone https://github.com/openfaas/faas && \
  cd faas && \
  ./deploy_stack.sh

执行完成以后就安装成功了

默认集群的帐号是admin

密码在安装完成时候会有一串秘钥

若是你安装完成以后没注意这串秘钥也没有关系,使用下面的方式既可找回

docker exec -it func_faas-swarm.1.sapakfa1baiaf3pqwwrm6xakx /bin/sh

以后查看下面这个文件就能够了

cat /run/secrets/basic-auth-password

最后咱们安装faas-cli,faas-cli是控制openfaas的一个cli工具,咱们除了能够在openfaas提供的web界面上操做openfaas之外,还可使用这个cli工具

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

安装完成以后再命令行中输入faas来验证是否安装成功

web 界面初体验

刚才说过了,咱们可使用openfaas提供的web界面来操做openfaas,在浏览器中输入你的swarm任何一个节点的ip加端口8080

image

输入帐号admin和刚才的密码登陆

image

以后咱们点击deploy new function来尝试部署一个function,好比我部署的是nodeinfo这个function,接着点击nodeinfo这个function,咱们能够看到下面这些信息

image

在这里你能够修改这个function的副本,能够看到这个function的执行次数,还能够点击url去访问他,点击invoke调用这个function

image

cli初体验

首先使用faas这个命令咱们要登陆到openfaas中

faas login --password 9e3c4697e48463fd215ed07203a0aa4fab2a834b58262c65a81b51d2d21a92d3

以后咱们查看已经部署了的function

faas list

➜  ~ faas list
Function                      	Invocations    	Replicas
youtube-dl                    	7              	1
nodeinfo                      	2              	1
nslookup                      	0              	1

以后咱们执行nodeinfo这个function

faas-cli invoke nodeinfo

这里会显示

➜  ~ faas-cli invoke nodeinfo
Reading from STDIN - hit (Control + D) to stop.

由于这个function咱们不须要任何的参数,因此咱们只须要输入Control + D就能够成功的执行这个function

Hostname: 870aa299570a

Platform: linux
Arch: arm
CPU count: 4
Uptime: 111863

或者咱们执行下面的命令也能够达到相同的效果

echo "" | faas invoke nodeinfo

➜  ~ echo "" | faas invoke nodeinfo
Hostname: cc2d291d748c

Platform: linux
Arch: arm
CPU count: 4
Uptime: 149743

接着咱们删除nodeinfo这个function

faas remove nodeinfo

建立这个function

faas store deploy NodeInfo -u https://raw.githubusercontent.com/openfaas/store/master/store-armhf.json

我解释下我为何要这么写,由于咱们是在树莓派下进行操做,因此咱们全部的软件都要armhf架构的,若是你直接执行

faas store deploy NodeInfo

可能会下载到x86架构的镜像,因此咱们要指定store的地址,而这个store是openfaas提供的实例。

欢迎关注Bboysoul的博客www.bboysoul.com

Have Fun

相关文章
相关标签/搜索