樹莓派上安裝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

相關文章
相關標籤/搜索