使用Multipass在Mac上快速部署openfaas/faasd

使用Multipass在Mac上快速部署openfaas/faasd

【免费下载链接】faasd A lightweight & portable faas engine 【免费下载链接】faasd 项目地址: 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

进阶使用

  1. 自定义函数开发:你可以基于这个环境开发自己的OpenFaaS函数
  2. 生产环境部署:相同的配置可以用于AWS或其他云平台
  3. 公开访问:如果需要将faasd暴露到公网,可以考虑使用inlets等工具

总结

通过Multipass,我们可以在Mac上快速搭建一个轻量级的faasd环境,体验Serverless函数的开发和部署。相比完整的OpenFaaS,faasd更加轻量,适合本地开发和测试使用。

【免费下载链接】faasd A lightweight & portable faas engine 【免费下载链接】faasd 项目地址: https://gitcode.com/gh_mirrors/fa/faasd

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值