All Projects → evry-bergen → kubeless-workshop

evry-bergen / kubeless-workshop

Licence: MIT license
Serverless Kubernetes Workshop with Kubeless

Programming Languages

Makefile
30231 projects
Smarty
1635 projects
javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to kubeless-workshop

workshop-edsl-in-typescript
Code template for workshop "Building eDSLs in functional TypeScript"
Stars: ✭ 49 (+250%)
Mutual labels:  workshop
bsidessf-2020-workshop
Materials for a live workshop at BSidesSF on deployment-level Kubernetes security controls
Stars: ✭ 38 (+171.43%)
Mutual labels:  workshop
trouble-training
FullStack DDD/CQRS with GraphQL workshop including distributed tracing and monitoring. This shows the configuration from React frontend to .Net backend.
Stars: ✭ 271 (+1835.71%)
Mutual labels:  workshop
streams-workshop
A workshop on Node.js Streams
Stars: ✭ 176 (+1157.14%)
Mutual labels:  workshop
workshop-sustainable-productivity
Workshop: the basics of stress, productivity, flow, focus, meditation and sustainability.
Stars: ✭ 20 (+42.86%)
Mutual labels:  workshop
CSSclasses
The homepage for CSSclasses, a free CSS workshop series
Stars: ✭ 19 (+35.71%)
Mutual labels:  workshop
Intro-to-R-with-DGE
hbctraining.github.io/intro-to-r-with-dge/
Stars: ✭ 51 (+264.29%)
Mutual labels:  workshop
teach-shiny
Materials for the Shiny Train the Trainer workshop
Stars: ✭ 38 (+171.43%)
Mutual labels:  workshop
pwa-workshop
Workshop: Turning a regular website into a Progressive Web Application
Stars: ✭ 41 (+192.86%)
Mutual labels:  workshop
start-here
You should open this repo first
Stars: ✭ 86 (+514.29%)
Mutual labels:  workshop
Annif-tutorial
Instructions, exercises and example data sets for Annif hands-on tutorial
Stars: ✭ 21 (+50%)
Mutual labels:  workshop
dapr-workshop
Workshop that teaches how to apply Dapr to an existing .NET, Java or Python based microservices application.
Stars: ✭ 118 (+742.86%)
Mutual labels:  workshop
kc-sofastack-demo
SOFAStack Demo for SOFAStack Cloud Native Workshop on KubeCon China 2019
Stars: ✭ 37 (+164.29%)
Mutual labels:  workshop
hacking-games-with-verbs
Whether it is running or collecting, shooting or trading, games are driven by verbs. In this workshop we pick out the verbs that make up a game and explore how these verbs express certain messages and values. Then we hack the game with new verbs, so that it communicates our own messages and values.
Stars: ✭ 16 (+14.29%)
Mutual labels:  workshop
techlab
This repository contains the APPUiO and OpenShift Techlab tutorials.
Stars: ✭ 51 (+264.29%)
Mutual labels:  workshop
pandas twitter
Analyzing Trump's tweets using Python (Pandas + Twitter workshop)
Stars: ✭ 81 (+478.57%)
Mutual labels:  workshop
react-workshop
Practical Introduction to React (with Redux & React Router v4)
Stars: ✭ 17 (+21.43%)
Mutual labels:  workshop
aws-ai-ml-workshop-kr
A collection of localized (Korean) AWS AI/ML workshop materials for hands-on labs.
Stars: ✭ 65 (+364.29%)
Mutual labels:  workshop
lectures
Learn Functional Programming in Scala
Stars: ✭ 114 (+714.29%)
Mutual labels:  workshop
learnp2p
https://learnp2p.org
Stars: ✭ 22 (+57.14%)
Mutual labels:  workshop

Kubeless Workshop

Serverless Kubernetes Workshop with Kubeless, NATS, and Minio. In this workshop you will learn how to:

  • Set up a Kubeless
  • Creating functions using the kubeless CLI
  • Creating triggers for invoking functions

0. Prerequsite

Tool Version
Virtualbox v5.2.18
Minikube v0.29.0
kubectl v1.11.3
Helm v2.11.0
Kubeless v1.0.0-alpha.8

1. Installing Dependencies

1.1. Setting up Minikube

Download the Minikube utility:

Architecture Download
Mac https://github.com/kubernetes/minikube/releases/download/v0.29.0/minikube-darwin-amd64
Linux https://github.com/kubernetes/minikube/releases/download/v0.29.0/minikube-linux-amd64
Windows https://github.com/kubernetes/minikube/releases/download/v0.29.0/minikube-windows-amd64
$ minikube start --memory 4096 --disk-size 40g --kubernetes-version v1.11.3 -v 4
$ minikube addons enable ingress

Verify Minikube

Verify the setup by running the following commands:

$ minikube status
$ kubectl version
$ kubectl cluster-info
$ kubectl get nodes

Set up the required ingress hostnames for this workshop:

$ make add-etc-hosts
Manual /etc/hosts install
$ export MINIKUBE_IP=$(minikube ip)
$ sudo sh -c "echo \"\n\" >> /etc/hosts"
$ sudo sh -c "echo \"$MINIKUBE_IP  minio.minikube\" >> /etc/hosts"
$ sudo sh -c "echo \"$MINIKUBE_IP  nats.minikube\" >> /etc/hosts"
$ sudo sh -c "echo \"$MINIKUBE_IP  kubeless.minikube\" >> /etc/hosts"
$ sudo sh -c "echo \"$MINIKUBE_IP  promethues.minikube\" >> /etc/hosts"
$ sudo sh -c "echo \"$MINIKUBE_IP  grafana.minikube\" >> /etc/hosts"
$ sudo sh -c "echo \"$MINIKUBE_IP  function-python.minikube\" >> /etc/hosts"
$ sudo sh -c "echo \"$MINIKUBE_IP  function-node.minikube\" >> /etc/hosts"

1.2. Install up Helm

Download the Helm client CLI:

Architecture Download
Mac https://storage.googleapis.com/kubernetes-helm/helm-v2.11.0-darwin-amd64.tar.gz
Linux https://storage.googleapis.com/kubernetes-helm/helm-v2.11.0-linux-amd64.tar.gz
Windows https://storage.googleapis.com/kubernetes-helm/helm-v2.11.0-windows-amd64.zip

Install the Helm server component:

$ helm init --upgrade

Verify that Helm is set up correctly:

$ helm version

1.3. Install Kubeless

Download the Kubeless client CLI:

Architecture Download
Mac https://github.com/kubeless/kubeless/releases/download/v1.0.0-alpha.8/kubeless_darwin-amd64.zip
Linux https://github.com/kubeless/kubeless/releases/download/v1.0.0-alpha.8/kubeless_linux-amd64.zip
Windows https://github.com/kubeless/kubeless/releases/download/v1.0.0-alpha.8/kubeless_windows-amd64.zip

Install the Kubeless control pane:

$ make install-kubeless
Manual install with Helm
$ helm upgrade kubeless ./charts/kubeless \
  --namespace kubeless \
  --values config/kubeless.yaml \
  --install \
  --wait \
  --timeout 600 \
  --force

Verify the Kubeless installation:

$ kubeless get-server-config

1.4. Install Promethues

Kubeless has native integration with Prometheus.

$ make install-prometheus
$ make install-grafana
Manual install with Helm
$ export MINIKUBE_IP=$(minikube ip)

$ helm upgrade prometheus stable/prometheus \
  --version 7.2.0 \
  --namespace monitoring \
  --values config/prometheus.yaml \
  --set server.ingress.hosts[1]=prometheus.${MINIKUBE_IP}.nip.io \
  --install \
  --wait \
  --timeout 600 \
  --force

$ helm upgrade grafana stable/grafana \
  --version 1.16.0 \
  --namespace monitoring \
  --values config/grafana.yaml \
  --set ingress.hosts[1]=grafana.${MINIKUBE_IP}.nip.io \
  --install \
  --wait \
  --timeout 600 \
  --force

1.5. Install NATS

NATS is a simple, high performance open source messaging system for cloud native applications, IoT messaging, and microservices architectures. Kubeless has native support for NATS in addition to Kafka.

Install the NATS server:

$ make install-nats
Manual install with Helm
$ helm upgrade nats stable/nats \
  --namespace nats \
  --values config/nats.yaml \
  --install \
  --wait \
  --timeout 600 \
  --force

1.6. Install Minio

Minio is a high performance distributed object storage server, designed for large-scale private cloud infrastructure.

Download the Minio client CLI:

Architecture Download
Mac https://dl.minio.io/client/mc/release/darwin-amd64/mc
Linux https://dl.minio.io/client/mc/release/linux-amd64/mc
Windows https://dl.minio.io/client/mc/release/windows-amd64/mc.exe

Install the Minio server:

$ make install-minio
Manual install with Helm
$ helm upgrade minio stable/minio \
  --namespace minio \
  --values config/minio.yaml \
  --install \
  --wait \
  --timeout 600 \
  --force

Configure Minio client

Set up the mc client command line utility to communicate with the Minio installation.

$ make configure-minio-client
Manual configure Minio client
$ export MINIKUBE_IP=$(minikube ip)
$ mc config host add local \
  http://${MINIKUBE_IP}:30900 \
  AKIAIOSFODNN7EXAMPLE \
  wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY \
  --api "S3v4" \
  --lookup "path"

Verify Minio client setup:

$ mc ls --recursive local

2. Labs

  1. Creating Functions
  2. Function Depenendies
  3. HTTP Triggers
  4. Monitoring Functions
  5. Serverless Application

3. Tips and Tricks

Kubeless UI

You can use the Kubless UI to view and manage functions by going to kubeless.minikube in your browser.

Minio UI

You can use the Minio UI to view and manage buckets by going to minio.minikube in your browser.

Example Functions

License

MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].