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

50 Shades of Kubernetes Autoscaling #JavaLand24

50 Shades of Kubernetes Autoscaling #JavaLand24

Unbegrenzte Skalierbarkeit und Elastizität sind der heilige Gral jeder Cloud-nativen Anwendung. Jetzt denkst du: „Super einfach! Ich betreibe einfach meine Container auf einem Kubernetes-Cluster und fertig.“ Aber ist es wirklich so einfach? Tja, nicht ganz!

Denn sowohl die Anwendung selbst als auch die Cluster-Infrastruktur selbst müssen diese nicht-funktionalen Anforderungen auch unterstützen. Diese Session gibt einen detaillierten und vor allem praktischen Einblick in die verschiedenen Möglichkeiten der (Auto)-Skalierung in Kubernetes. Wir sprechen über die technischen Grundlagen und zeigen nützliche Frameworks und Technologien, um die Workloads als auch den Cluster automatisch und flexibel zu skalieren.

#cloudnativenerd #qaware #javaland24

M.-Leander Reimer

April 10, 2024
Tweet

More Decks by M.-Leander Reimer

Other Decks in Technology

Transcript

  1. Wollen wir zwischendurch eine 5 Minuten Pause machen? ⓘ Click

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

    Present with Slido or install our Chrome extension to activate this poll while presenting.
  3. 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… ▪
  4. 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
  5. 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?
  6. Shared Responsibility means it is our responsibility to use and

    configure the required cloud resources for good scalability. 11 QAware
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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"