WSL中OpenFaaS开发环境配置
WSL中OpenFaaS开发环境配置1. 开发环境Docker DesktopOpenFaaS部署faas-cli编写函数创建打包部署1. 开发环境由于本机为windows系统,为了贴近实际部署情况,开发环境配置均位于WSL(Ubuntu 20.04)中。OpenFaaS需要部署在Kubernetes上,这里采用Docker Desktop的方式安装Kubernetes。Docker Deskto
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-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)
更多推荐
所有评论(0)