Slide 1

Slide 1 text

qaware.de Fifty Shades of Kubernetes Autoscaling Mario-Leander Reimer [email protected] @LeanderReimer

Slide 2

Slide 2 text

2 Mario-Leander Reimer Managing Director | CTO @LeanderReimer #cloudnativenerd #qaware #gernperDude

Slide 3

Slide 3 text

Wollen wir zwischendurch eine 5 Minuten Pause machen? ⓘ Click Present with Slido or install our Chrome extension to activate this poll while presenting.

Slide 4

Slide 4 text

Wie gut kennst du dich mit Kubernetes aus? ⓘ Click Present with Slido or install our Chrome extension to activate this poll while presenting.

Slide 5

Slide 5 text

5 QAware Back to #JavaLand18

Slide 6

Slide 6 text

6 QAware

Slide 7

Slide 7 text

Skalierbarkeit: Effekte 7 QAware ■ Tageszeitliche und saisonale Effekte: Mittags-Peak, Prime-Time-Peak, X-Mas, Weekend, Valentinstag, … (vorhersehbare Belastungsspitzen) ■ Kontinuierliches Wachstum ■ Sondereffekte: z.B. Slashdot-Effekt, DDoS (unvorhersehbare Belastungsspitzen) ■ Temporäre Plattformen: Projekte, Tests, Batch… ■

Slide 8

Slide 8 text

Elastizitätsarten Nachfrageelastizität: Die allokierten Ressourcen steigen / sinken mit der Nachfrage. ■ Pseudo-Elastizität: Schneller Aufbau. Kurze Kündigungsfrist. ■ Echtzeit-Elastizität: Allokation und Freigabe von Ressourcen innerhalb von Sekunden. Automatisierter Prozess mit manuellen Triggern oder nach Zeitplan. ■ Selbstadaptive Elastizität: Automatische Allokation und Freigabe von Ressourcen in Echtzeit auf Basis von Regeln und Metriken. Angebotselastizität: Die allokierten Ressourcen steigen / sinken mit dem Angebot. ■ Dies ist das typische Verhalten eines Grids: Alle verfügbaren Rechner werden allokiert. ■ Es sind auch Varianten verfügbar, bei denen man für freie Ressourcen bieten kann. Einkommenselastizität: Die allokierten Ressourcen steigen / sinken mit dem Einkommen bzw. dem Budget. 8 QAware

Slide 9

Slide 9 text

Elasticity of workloads, cloud infrastructure and K8s required for hyperscale applications. 9 Node 1 Node 2 Node 3 Node 4 X

Slide 10

Slide 10 text

10 QAware Monitoring What is the usage and consumption of my cluster and workloads? Measure, Measure, Measure, Act. Elasticity Oversized or underutilized resources? Infrastructure and workloads should be proportionate to actual demand. Architecture Where is the cluster running? On which hardware? Take scalability into account when building the infrastructure. Waste Shutdown or deplete the wasted resources. Not required, redundant or forgotten environments or workloads?

Slide 11

Slide 11 text

Shared Responsibility means it is our responsibility to use and configure the required cloud resources for good scalability. 11 QAware

Slide 12

Slide 12 text

lreimer/ 50-shades-k8s-scaling

Slide 13

Slide 13 text

13 QAware Metrics Events Foto von RDNE Stock project auf Pexels Bild von Pexels auf Pixabay

Slide 14

Slide 14 text

High-Level View on Application Scaling in Kubernetes 14 https://learnk8s.io/autoscaling-apps-kubernetes Autoscaler Application

Slide 15

Slide 15 text

Resource Metrics, Custom Metrics, External Metrics API 15 https://learnk8s.io/autoscaling-apps-kubernetes

Slide 16

Slide 16 text

Resource Metrics, Custom Metrics, External Metrics API 16 https://learnk8s.io/autoscaling-apps-kubernetes

Slide 17

Slide 17 text

Workload Rightsizing mit VPA und Goldilocks 17 QAware https://github.com/FairwindsOps/goldilocks apiVersion: "autoscaling.k8s.io/v1" kind: VerticalPodAutoscaler metadata: name: hamster-vpa spec: targetRef: apiVersion: "apps/v1" kind: Deployment name: hamster updatePolicy: # updateMode: "Auto" updateMode: "Off" resourcePolicy : containerPolicies : - containerName: '*' minAllowed: cpu: 100m memory: 50Mi maxAllowed: cpu: 1 memory: 500Mi controlledResources : ["cpu", "memory"] Festlegen von Anforderungen und Limits für CPU und RAM realistische Performance-Tests Auswertung des gemessenen Ressourcenverbrauchs https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler

Slide 18

Slide 18 text

kube-green An operator to reduce CO2 footprint of your clusters 18 QAware apiVersion: kube-green.com/v1alpha1 kind: SleepInfo metadata: name: non-working-hours spec: weekdays: "1-5" sleepAt: "18:00" wakeUpAt: "08:00" timeZone: "Europe/Rome" suspendCronJobs : true excludeRef: - apiVersion: "apps/v1" kind: Deployment name: no-sleep-deployment - matchLabels : kube-green.dev/exclude : "true" https://kube-green.dev/docs/FAQ/#how-many-co2-is-produced-by-pod

Slide 19

Slide 19 text

Carbon-aware Scaling mit KEDA ■ https://keda.sh ■ KEDA ist ein Kubernetes-basierter ereignisgesteuerter und zweck-orientierter Autoscaler. ■ Unterstützt 50+ Scaler Out-of-the-box, e.g. Cron, RabbitMQ, … ■ Carbon Aware Scheduling - Kubernetes Carbon Intensity Exporter - Carbon Aware KEDA Operator 19 QAware

Slide 20

Slide 20 text

Plenty of Options and Technologies for K8s Autoscaling. ■ Kubernetes Metrics Server ■ Prometheus Adapter for Kubernetes Metrics APIs ■ Horizontal Pod Autoscaler ■ Vertical Pod Autoscaler ■ Kubernetes Event-driven Autoscaling with Keda ■ Kubernetes Cluster Autoscaler ■ Just-in-time Nodes for Any K8s Cluster with Karpenter ■ Kubernetes Descheduler 20

Slide 21

Slide 21 text

qaware.de QAware GmbH Aschauer Straße 32 81549 München Tel. +49 89 232315-0 [email protected] twitter.com/qaware linkedin.com/company/qaware-gmbh xing.com/companies/qawaregmbh slideshare.net/qaware github.com/qaware

Slide 22

Slide 22 text

QAware | 22 Cloud Platform Engineer Senior Cloud Platform Engineer [email protected]

Slide 23

Slide 23 text

Wir übernehmen Verantwortung und Risiken: Für Prototypen bis hin zu großen Programmen. Wir liefern. Garantiert. Wir agieren in kompakten und eingeschwungenen cross-funktionalen Teams aus Beratern, Entwicklern und Managern mit folgenden Garantien: ■ Erfolgsgarantie: Wir übernehmen Verantwortung und tragen Ihre Risiken mit z.B. über Festpreise. ■ Qualitätsgarantie: Nachhaltige und sichere Software von höchster Qualität– über KPIs belegt und vertraglich fixiert. ■ Zufriedenheitsgarantie: Ihr werdet mit uns glücklich sein! Auch in kleinen Liefer- artefakten. So sicher das wir auch gern ein Teil unser Vergütung daran binden. Wir verstehen uns als Enabler. Wir transformieren IT-Organisationen direkt über die Zusammenarbeit im Projekt. 200 Engineers München, Mainz, Darmstadt, Rosenheim seit 18 Jahren durchgehend Erfolge in anspruchsvollsten Projekten Cloud Native Transformation & Host-Ablöse: Reiseleiter in die Zukunft Data & AI Value: Daten erschließen, vernetzen & wertvoll machen ■ Allianz LEAP und Syncier Cloud ■ Hellmann HeRo ■ Ericsson KDTMES ■ BMW Aftersales Info Research ■ Krones & MaidlTC AI Optimizer ■ BMW GenAI Plattform Digital Business Booster: Geschäftskritische Innovationen ermöglichen & beschleunigen ■ DT Magenta Voice ■ ubitricity charging platform ■ Raiffeisenbank Südtirol Next 35 M€ Umsatz Unsere Expertise Top Provider NPS 100 Top Arbeitgeber: 97% sagen: “QAware ist ein sehr guter Arbeitsplatz"