OpenFaaS系列文章:

WSL中OpenFaaS开发环境配置
OpenFaaS部署前端
OpenFaaS开发后端curd接口

1. 开发环境

由于本机为windows系统,为了贴近实际部署情况,开发环境配置均位于WSL(Ubuntu 20.04)中。

OpenFaaS需要部署在Kubernetes上,这里采用Docker Desktop的方式安装Kubernetes。

Docker Desktop

通过Docker Desktop可以方便地在Win/Mac系统上配置docker和k8s,同时在WSL中可以访问Windows本机安装的docker和k8s环境。

官网下载并安装Docker Desktop

安装完成后通过Docker Desktop安装k8s

注意: 此步骤需要拉取一些外网的镜像,梯子不稳定可能需要多试几次

打开Docker Desktop,点击设置,选择Kubernetes
在这里插入图片描述
勾选Enable Kubernetes并点击Reset Kubernetes Cluster,等待安装k8s

时间可能会比较久,等待左下角k8s标志变绿后说明安装成功。如果失败可以再次点击Reset Kubernetes Cluster重复尝试。

成功后通过

kubectl get node

命令可以看到docker-desktop节点
在这里插入图片描述
在win和wsl中均可使用此命令

OpenFaaS

此处参考了这个系列的文章,讲解非常详细

OpenFaaS官方部署文档

部署

首先安装openfaas-cli命令行工具

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

显示OpenFaaS的ASCII字符画说明安装成功

这里使用官方提供的arkade工具安装openfaas

安装arkade

工具地址https://github.com/alexellis/arkade

curl -sLS https://get.arkade.dev | sudo sh

安装openfaas

arkade install openfaas

安装完成后会创建openfaas和openfaas-fn两个命名空间,我们部署的函数位于openfaas-fn命名空间中
查看命名空间

kubectl get namespace

在这里插入图片描述

kubectl get pods -n openfaas

pod启动需要等待一段时间,可能会出现错误的情况,此时等待pod自动重启即可
在这里插入图片描述

将端口映射出去

kubectl port-forward -n openfaas svc/gateway 8080:8080

查看各个pod均为READY后,进入ui界面查看
用户名为admin,查看ui的密码

echo $(kubectl get secret -n openfaas basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode; echo)

由于部署在WSL中,通过
http://localhost:8080/ui/进入
在这里插入图片描述
点击deploy new function部署一个函数测试,选择NodeInfo后点击DEPLOY
成功后在左侧会显示nodeinfo函数,点击nodeinfo查看
在这里插入图片描述
可以通过url测试接口部署情况
使用postman发送get请求
在这里插入图片描述
可以看到当前机器的信息

faas-cli

可以配置通过faas-cli访问函数

配置环境变量

vim ~/.bashrc

添加环境变量

echo export OPENFAAS_URL=localhost:8080

保存

faas-cli登录

faas-cli login --password xxx

登录成功后就可以查看已部署的函数

faas-cli list

在这里插入图片描述
可以看到nodeinfo函数

删除某个函数

faas-cli delete nodeinfo

编写函数

OpenFaaS官方提供了一些语言模板,通过

faas-cli template pull

命令拉取模板,当前目录下会出现一个template文件夹,通过

faas-cli new --list

查看可用的模板列表
在这里插入图片描述

创建

下面创建一个go语言的函数测试

新建app文件夹,进入文件夹

通过命令

faas-cli new hello --lang go -p {your_user_name}

可以创建一个函数,其中hello为函数名,–lang后面指明语言类型,{your_user_name}填写docker hub的用户名

当前目录下会出现hello.yml文件和hello文件夹

进入hello文件夹,查看handler.go函数
在这里插入图片描述
函数功能为返回一个字符串

打包

退回app目录,使用

faas-cli build -f ./hello.yml

命令打包函数,构建完成后查看本地名为hello的镜像

docker images | grep hello

可以看到hello镜像

部署

openfaas默认通过docker hub拉取镜像,首先将hello镜像推送上去
通过

docker login

命令登录docker hub
使用

docker push $your_user_name/hello

命令推送,$your_user_name为docker hub用户名

推送完成后执行命令

faas-cli deploy -f hello.yml

会自动从docker hub拉取镜像,完成后会提示url,在web界面上也能查看到此函数
(新版openfaas端口改为8080)
在这里插入图片描述
查看Status显示为Ready后,通过Postman测试接口
(新版openfaas端口改为8080)
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐