使用Multipass在Mac上快速部署openfaas/faasd
【免费下载链接】faasd A lightweight & portable faas engine 项目地址: https://gitcode.com/gh_mirrors/fa/faasd
前言
openfaas/faasd是一个轻量级的Serverless平台,相比完整的OpenFaaS,它去除了Kubernetes依赖,直接运行在容器运行时(如containerd)上。本文将介绍如何使用Canonical的Multipass工具在Mac上快速部署faasd环境。
Multipass简介
Multipass是Canonical提供的一款轻量级虚拟机管理工具,可以快速创建和管理Ubuntu虚拟机。它类似于Docker Desktop,但提供的是完整的Ubuntu虚拟机环境而非单纯的Docker守护进程。Multipass支持MacOS、Linux和Windows平台,提供一致的用户体验。
准备工作
1. 安装Multipass
访问Multipass官网下载并安装对应版本的客户端工具。
2. 准备SSH密钥
确保你的本地机器已生成SSH密钥对(通常位于~/.ssh/目录下)。如果没有,可以通过以下命令生成:
ssh-keygen -t rsa -b 4096
部署faasd
1. 获取cloud-config配置文件
faasd项目提供了一个cloud-init配置文件模板,用于自动化部署:
curl -sSLO https://raw.githubusercontent.com/openfaas/faasd/master/cloud-config.txt
2. 自定义配置并启动虚拟机
使用sed命令将配置文件中的SSH公钥替换为你本机的公钥,并启动名为faasd的虚拟机:
sed "s/ssh-rsa.*/$(cat $HOME/.ssh/id_*.pub)/" cloud-config.txt | multipass launch --name faasd --cloud-init -
如果你更喜欢手动操作,可以编辑cloud-config.txt文件,将ssh_authorized_keys部分替换为你的公钥内容。
3. 获取虚拟机信息
启动完成后,查看虚拟机信息并记录IP地址:
multipass info faasd
将IP地址导出为环境变量:
export IP="你的虚拟机IP"
4. 测试SSH连接
ssh ubuntu@$IP
成功连接后退出。
5. 获取faasd认证密码
ssh ubuntu@$IP "sudo cat /var/lib/faasd/secrets/basic-auth-password" > basic-auth-password
使用faasd
1. 配置faas-cli
export OPENFAAS_URL=http://$IP:8080
cat basic-auth-password | faas-cli login -s
2. 部署和调用函数
部署一个示例函数:
faas-cli store deploy figlet --env write_timeout=1s
调用函数:
echo "faasd" | faas-cli invoke figlet
查看函数详情:
faas-cli describe figlet
3. 异步调用
# 简单异步调用
curl -i -d "faasd-async" $OPENFAAS_URL/async-function/figlet
# 带回调的异步调用
curl -i -d "faasd-async" -H "X-Callback-Url: http://你的回调地址" $OPENFAAS_URL/async-function/figlet
4. 访问Web UI
在浏览器中打开faasd的Web界面:
echo http://$IP:8080
使用用户名admin和之前保存的密码登录。
虚拟机管理
停止虚拟机
multipass stop faasd
删除虚拟机
multipass delete --purge faasd
进阶使用
- 自定义函数开发:你可以基于这个环境开发自己的OpenFaaS函数
- 生产环境部署:相同的配置可以用于AWS或其他云平台
- 公开访问:如果需要将faasd暴露到公网,可以考虑使用inlets等工具
总结
通过Multipass,我们可以在Mac上快速搭建一个轻量级的faasd环境,体验Serverless函数的开发和部署。相比完整的OpenFaaS,faasd更加轻量,适合本地开发和测试使用。
【免费下载链接】faasd A lightweight & portable faas engine 项目地址: https://gitcode.com/gh_mirrors/fa/faasd
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



