faasd是openfaas在linux主机上最轻量的部署方式,仅需512mb内存和systemd,不依赖kubernetes;但不可与docker共存,因其独占containerd运行时,否则会因socket和cgroup冲突导致启动失败。

faasd 是 Linux 主机上最轻量、最直接的 OpenFaaS 安装方式,512MB 内存 + systemd 的普通机器就能跑起来。它不依赖 Kubernetes,也不和 Docker 共存——这点必须提前确认,否则 containerd 版本冲突会导致 faasd 启动失败。
为什么不能和 Docker 一起装在同台 Linux 主机上
faasd 自带并独占使用 containerd 作为运行时,而 Docker(尤其是较新版本)也自带自己的 containerd 实例,两者会抢 /run/containerd/containerd.sock 和 cgroup 配置。常见现象是:systemctl status faasd 显示 failed,日志里反复出现 failed to connect to containerd 或 cgroups: cgroup mountpoint does not exist。
- 检查是否已装 Docker:
docker --version和which dockerd - 若存在,卸载完整:
sudo apt-get purge docker-ce docker-ce-cli containerd.io -y && sudo rm -rf /var/lib/docker /etc/docker - 确保
containerd干净:sudo systemctl stop containerd && sudo systemctl disable containerd
用 arkade 一键安装 faasd(推荐)
arkade 是 OpenFaaS 官方推荐的 CLI 工具,比手动 clone + ./hack/install.sh 更稳定,自动处理二进制下载、containerd 初始化和 systemd 服务注册。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 先装
arkade:curl -sLS https://get.arkade.dev | sudo sh - 再装
faasd:arkade install faasd - 安装完成后,
faasd会自动生成凭据文件:/var/lib/faasd/secrets/basic-auth-user和/var/lib/faasd/secrets/basic-auth-password - 用
sudo cat /var/lib/faasd/secrets/basic-auth-password查看密码
faas-cli 怎么配才能连上本地 faasd
faas-cli 默认连 http://127.0.0.1:8080,但 faasd 的网关实际监听 0.0.0.0:8080,且强制要求 Basic Auth。不设对 gateway 地址和凭据,faas-cli list 会报 Unauthorized 或 connection refused。
- 设置环境变量(每次终端生效):
export OPENFAAS_URL="http://admin:$(sudo cat /var/lib/faasd/secrets/basic-auth-password)@127.0.0.1:8080" - 或写入配置文件:
echo "gateway: http://admin:$(sudo cat /var/lib/faasd/secrets/basic-auth-password)@127.0.0.1:8080" > ~/.openfaas/config.yaml - 验证:
faas-cli version和faas-cli list应返回空列表(无函数)而非错误
部署第一个函数时容易卡在 build 或 push 环节
faas-cli deploy 在 faasd 环境下默认走本地构建(buildkit),不推镜像到远程 registry。但如果本地没装 buildkitd 或 DOCKER_HOST 环境变量残留,就会 fallback 到 Docker 构建,进而失败。
- 确认没残留 Docker 环境:
unset DOCKER_HOST,再执行faas-cli deploy - 用
--build-arg显式指定 builder:faas-cli build --build-arg BUILDKIT=1 - 首次部署建议用官方模板:
faas-cli new --lang python3 myfunc && faas-cli up -f myfunc.yml - 如果卡在
Building function image,检查sudo journalctl -u faasd -n 50 -f,重点看buildkit是否启动成功
faasd 的核心价值在于“单机可运行”,但它的脆弱点也正源于此:所有组件(gateway、nats、queue-worker、buildkit)都挤在同一个 containerd namespace 里,任何一步的环境污染(比如误装 Docker、systemd 未启用 cgroup v2)都会导致整条链路中断。动手前花两分钟确认 containerd 独占性和 cgroup 版本,比出错后翻日志快得多。










