Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Event-driven autoscaling on Kubernetes with KEDA and Azure Functions

Event-driven autoscaling on Kubernetes with KEDA and Azure Functions

Erwin Staal

January 29, 2020
Tweet

More Decks by Erwin Staal

Other Decks in Technology

Transcript

  1. @erwin_staal Containers? A lightweight, stand-alone, executable package of • Code

    • Runtime • System tools • System libraries • Settings • …
  2. @erwin_staal Kubernetes in 5 minutes Worker K Master API application.yaml

    Worker K Worker K P1-r1 P1-r2 P1-r3 kind: Deployment spec: template: spec: containers: - name: grafana image: grafana/grafana ports: - containerPort: 3000 replicas: 3
  3. @erwin_staal Kubernetes Event-Driven Autoscaling • Install into any cluster •

    Extensible and pluggable scalers to grab metrics from any event source • Monitors the rate of events to proactively scale any container • Feeds the data into the Kubernetes APIs to drive scaling • Allows containers to scale to and from zero • It is up to the deployment to consume the events from source
  4. @erwin_staal It’s your queue KEDA Queue App 1 2 3

    Alternative Queue App 1 3 HTTP Scale 2
  5. @erwin_staal Scalers AWS Kinesis Stream Apache Kafka Topic AWS Cloudwatch

    AWS SQS Queue Azure Blob Storage Azure Event Hubs Azure Service Bus Azure Storage Queue External Google Cloud Platform Pub/Sub Huawei Cloudeye Liiklus Topic NATS Streaming RabbitMQ Queue Prometheus Redis Lists
  6. @erwin_staal AKS + Virtual nodes Azure Kubernetes Services Azure Container

    instances kind: Deployment spec: template: spec: containers: - name: grafana image: grafana/grafana
  7. @erwin_staal K3s and K3d? • K3s - 5 less than

    K8s • Flannel • CoreDNS • Traefik • SQLite • Containerd “k3d is a utility designed to easily run k3s in Docker, it provides a simple CLI to create, run, delete a full compliance Kubernetes cluster with 0 to n worker nodes.”