mirror of
https://github.com/openfaas/faasd.git
synced 2025-06-08 16:06:47 +00:00
Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
faasd - serverless with containerd
faasd is a Golang supervisor that bundles OpenFaaS for use with containerd instead of a container orchestrator like Kubernetes or Docker Swarm.
About faasd:
- faasd is a single Golang binary
- faasd is multi-arch, so works on
x86_64
, armhf and arm64 - faasd downloads, starts and supervises the core components to run OpenFaaS
What does faasd deploy?
You can use the standard faas-cli with faasd along with pre-packaged functions in the Function Store, or build your own with the template store.
faas-containerd supports:
faas list
faas describe
faas deploy --update=true --replace=false
faas invoke
Other operations are pending development in the provider.
Backlog
- Use CNI to create network namespaces and adapters
- Inject / manage IPs between core components for service to service communication - i.e. so Prometheus can scrape the OpenFaaS gateway
- Monitor and restart any of the core components, if they crash
- Configure
basic_auth
to protect the OpenFaaS gateway and faas-containerd HTTP API - Self-install / create systemd service on start-up using go-systemd
- Bundle/package/automate installation of containerd - see bootstrap from k3s
- Create faasd.service
Hacking
First run faas-containerd
cd $GOPATH/src/github.com/alexellis/faas-containerd
go build && sudo ./faas-containerd
Then run faasd, which brings up the gateway and Prometheus as containers
cd $GOPATH/src/github.com/alexellis/faasd
go build && sudo ./faasd
Look in hosts
in the current working folder to get the IP for the gateway or Prometheus
127.0.0.1 localhost
172.19.0.1 faas-containerd
172.19.0.2 prometheus
172.19.0.3 gateway
Since faas-containerd uses containerd heavily it is not running as a container, but as a stand-alone process. Its port is available via the bridge interface, i.e. netns0.
Removing containers:
echo faas-containerd gateway prometheus |xargs sudo ctr task rm -f
echo faas-containerd gateway prometheus |xargs sudo ctr container rm
echo faas-containerd gateway prometheus |xargs sudo ctr snapshot rm
Description
Lightweight and portable version of OpenFaaS
apiarmcontainerdcontainersdeployedgefaasfaasdgolanghttpmicroservicesopenfaasremoterestserverlesswebhooks
Readme
MIT
44 MiB
Languages
Go
90.6%
Shell
7.4%
Makefile
2%