Simplify your Kubernetes workflow with OpenFaaS
Serverless? NoOps?

Kubernetes 101 - old school approach
- Image
- Container
- Pod
- Deployment
- Service
- Ingress
Better way
OpenFaaS adventages
- Simple app deployments
- Scale to zero
- Sports many orchestration providers (not only k8s)
- Simplicity
OpenFaas architecture


watchdog
FaaS UI

OpenFaaS store

faas-cli
Available Commands:
auth Obtain a token for your OpenFaaS gateway
build Builds OpenFaaS function containers
cloud OpenFaaS Cloud commands
deploy Deploy OpenFaaS functions
describe Describe an OpenFaaS function
generate Generate Kubernetes CRD YAML file
invoke Invoke an OpenFaaS function
list List OpenFaaS functions
login Log in to OpenFaaS gateway
logout Log out from OpenFaaS gateway
logs Tail logs from your functions
new Create a new template in the current folder with the name given as name
push Push OpenFaaS functions to remote registry (Docker Hub)
remove Remove deployed OpenFaaS functions
secret OpenFaaS secret commands
store OpenFaaS store commands
template OpenFaaS template store and pull commands
up Builds, pushes and deploys OpenFaaS function containers
OpenFaaS Cloud
faas-netes vs operator
faas-netes
"The faas-netes controller is the most tested, stable and supported version of the OpenFaaS integration with Kubernetes."
operator
OpenFaaS Operator is based upon the codebase and features from faas-netes, but offers a tighter integration with Kubernetes through CustomResourceDefinitions. This means you can type in kubectl get functions for instance.
apiVersion: openfaas.com/v1alpha2
kind: Function
metadata:
name: hello-python-zero
namespace: openfaas-fn
spec:
handler: python index.py
image: gcr.io/openfaas-261807/hello-python-zero:1
labels: {}
name: hello-python-zero
readOnlyRootFilesystem: false
replicas: 1
requests: null
secrets: []
OpenFaaS autoscaling
- Scaling by requests per second
- Scaling by CPU and/or memory utilization
- Scale to zero
- Cold Start
Demo
Gotchas
version: 1.0
provider:
name: openfaas
gateway: http://34.65.59.132:8080
functions:
hello-python:
lang: python
handler: ./hello-python
image: gcr.io/openfaas-261807/hello-pythonr3:latest
-
faasnetes: # redacted readinessProbe: initialDelaySeconds: 0 timeoutSeconds: 1 periodSeconds: 1 livenessProbe: initialDelaySeconds: 0 timeoutSeconds: 1 periodSeconds: 1 # redacted imagePullPolicy: "IfNotPresent" # Image pull policy for deployed functions
Private registry access
Simplify your Kubernetes workflow with
By Maciej Sawicki
Simplify your Kubernetes workflow with
- 100