该存储库包含打包程序模板和脚本,用于构建预安装了faasd和inlet OSS/PRO的Raspbian映像。
Faasd是相同的OpenFaaS体验和生态系统,但没有Kubernetes。功能和微服务可以部署在任何地方,减少开销,同时保留容器和云本地工具(如tainerd和cni)的可移植性。
该安装的灵感来自Alex Ellis的博客,该博客更详细地解释了如何在Raspberry PI上安装faasd。
除了tainerd、faasd和inlets之外,cloud-init还可用于初始化和配置Raspian实例。使用cloud-init,您可以自定义主机名、授权的ssh密钥、静态IP、faasd的基本身份验证等。
Rpi-faasd:一个Raspbian/Ubuntu镜像,将tainerd和faasd作为systemd服务,以运行私有faasd实例。
Rpi-faasd-inlets-oss:一个Raspbian/Ubuntu映像,将tainerd、faasd和inlets OS作为systemd服务,运行具有公共端点的私有faasd实例。
Rpi-faasd-inlets-pro:一个Raspbian/Ubuntu映像,将tainerd、faasd、Caddy和inlets pro作为systemd服务,运行具有安全(TLS)公共端点的私有faasd实例。
一旦服务启动并运行,您就可以在http://<;your raspberry pi ip>;上访问openfaas。所需的基本身份验证凭据位于Raspberry PI的/var/lib/faasd/secrets/中。
要公开在Raspberry PI上运行的faasd网关,您需要创建一个带有公共IP的出口节点。我发现使用inletsctl是实现这一点的最简单方法。下载最新版本或通过运行curl-sslf https://inletsctl.inlets.dev|sudo sh进行简单安装。
将rpi-faasd-inlets-pro映像写入SD卡后,使用所需环境变量的适当值配置您的实例。(参见Examples/User-Data-Inlets-OSS)。
要公开在Raspberry PI上运行的faasd网关,您需要创建一个带有公共IP的出口节点。我发现使用inletsctl是实现这一点的最简单方法。下载最新版本或通过运行curl-sslf https://inletsctl.inlets.dev|sudo sh进行简单安装。
最后一个标志--remote-tcp告诉inlets PRO客户端将流量发送到哪里,在本例中是环回接口。入口PRO客户端被配置为从隧道冲出端口80和443。
剩下的一件事是:为您的faasd安装准备一个域。拥有域之后,使用出口节点的公有IP添加DNS A记录。Caddy需要一个域才能使用“让”的加密生成一些TLS证书。
将rpi-faasd-inlets-OSS映像写入SD卡后,使用所需环境变量的适当值配置您的实例。(参见Examples/User-Data-Inlets-OSS)。
该项目包括一个流浪者文件和一些脚本,用于在隔离环境中构建映像。