树莓派上安装openfaas和初体验
什么是openfaas
openfaas 是一款开源的faas框架,什么是faas,faas是Function as a Service的缩写可以理解为功能服务化,FaaS提供了一种比微服务更加服务碎片化的软件架构范式,可以让开发更关注代码开发逻辑,而不需要关注代码架构。openfaas可以在k8s上运行也可以在swarm集群上运行
实验环境
两个安装着raspbian的树莓派AB
安装docker容器
这个我就不再详细讲了,很简单,使用下面命令安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
两个树莓派都要安装
初始化swarm集群
两条命令
在树莓派A中启动集群
docker swarm init
之后把把树莓派B加入到树莓派A master节点中
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
原文地址:https://www.jianshu.com/p/e6dae0adb03a
相关推荐
-
一文搞懂 Linux network namespace 服务器
2019-7-2
-
Ansible 起步指南 服务器
2019-3-8
-
ActFramework 在 TEB R14 中击败 Spring 服务器
2020-5-31
-
基于keepalived搭建MySQL的高可用集群 服务器
2019-3-21
-
Docker进阶-资源管理Swarm+Portainer 服务器
2019-8-24
-
sshpass:一个很棒的免交互 SSH 登录工具,但不要用在生产服务器上 服务器
2019-3-8
-
如何在 Linux 上管理字体 服务器
2019-2-17
-
30 个 Openstack 经典面试问题和解答 服务器
2019-2-17
-
在K8S集群中一步步构建一个复杂的MySQL数据库 服务器
2019-3-18
-
udev 入门:管理设备事件的 Linux 子系统 服务器
2019-2-17