JavaLand 2024, April 2024, Mario-Leander Reimer
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Abstract:
Elasticity and unlimited scalability are the holy grail for any cloud-native application. Now you might think: “That’s easy!!! I just run my containers on a Kubernetes cluster and I am done.” But is it really that simple?
Turns out it’s not! Your application as well as your cloud infrastructure and K8s cluster need to address and support these non-functional requirements.
This session will have a detailed and also practical look at the different ways of autoscaling in Kubernetes. We will give an overview of the technical foundations and prerequisites, and then showcase several frameworks and technologies that can be used to flexibly autoscale your cluster and your cloud-native workloads.
3. Wollen wir zwischendurch eine 5
Minuten Pause machen?
ⓘ Click Present with Slido or install our Chrome extension to activate this poll while presenting.
4. Wie gut kennst du dich mit Kubernetes
aus?
ⓘ Click Present with Slido or install our Chrome extension to activate this poll while presenting.
8. 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
9. Elasticity of workloads, cloud infrastructure and K8s required
for hyperscale applications.
9
Node 1 Node 2 Node 3 Node 4
X
10. 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?
11. Shared Responsibility means it is our responsibility to use and
configure the required cloud resources for good scalability.
11
QAware
14. High-Level View on Application Scaling in Kubernetes
14
https://learnk8s.io/autoscaling-apps-kubernetes
Autoscaler
Application
15. Resource Metrics, Custom Metrics, External Metrics API
15
https://learnk8s.io/autoscaling-apps-kubernetes
16. Resource Metrics, Custom Metrics, External Metrics API
16
https://learnk8s.io/autoscaling-apps-kubernetes
17. 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
18. 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
19. 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
20. 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
21. qaware.de
QAware GmbH
Aschauer Straße 32
81549 München
Tel. +49 89 232315-0
info@qaware.de
twitter.com/qaware
linkedin.com/company/qaware-gmbh
xing.com/companies/qawaregmbh
slideshare.net/qaware
github.com/qaware
23. 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"