Kategorien: Kubernetes, Anleitung
Schlagwörter: Kubernetes, Ressourcennutzung, Verwaltung, Skalierung

Optimierung der Kubernetes-Ressourcennutzung: Horizontal Pod Autoscaler und Metrics Server im Fokus

Eine der zentralen Herausforderungen beim Betrieb von Anwendungen in Kubernetes-Clustern besteht darin, die Ressourcennutzung effizient zu verwalten und die Skalierbarkeit zu gewährleisten. Hier kommen der Horizontal Pod Autoscaler (HPA) und der Metrics Server ins Spiel. In diesem Beitrag zeigen wir Ihnen, wie Sie diese beiden Komponenten nutzen, um Ihre Anwendungen automatisch und dynamisch zu skalieren, basierend auf der aktuellen Auslastung.

Schritt 1: Einrichtung des Metrics Servers mit Helm

Der Metrics Server ist eine wesentliche Komponente für das Monitoring von Ressourcen in Kubernetes-Clustern. Wir beginnen damit, den Metrics Server mithilfe von Helm einzurichten. Dazu fügen wir das entsprechende Helm-Repository hinzu, aktualisieren die verfügbaren Pakete und installieren den Metrics Server in unserem Cluster. Dies ermöglicht es uns, Ressourcen wie CPU und Speicher effektiv zu überwachen und zu analysieren.


# Helm-Repository für Metrics Server hinzufügen
helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server

# Aktualisieren der verfügbaren Pakete
helm repo update metrics-server

# Metrics Server installieren
helm install metrics-server metrics-server/metrics-server –namespace metrics-server

Schritt 2: Konfiguration des Horizontal Pod Autoscalers (HPA)

Der HPA ist ein Kubernetes-Feature, das es ermöglicht, die Anzahl der Pods einer Anwendung basierend auf verschiedenen Metriken automatisch anzupassen. Wir zeigen Ihnen, wie Sie einen HPA konfigurieren, um Ihre Anwendungen basierend auf CPU- oder Speicherauslastung zu skalieren. Dabei gehen wir sowohl auf die direkte Anwendung eines YAML-Manifests als auch auf die Verwendung des kubectl-Befehls ein.


# Beispiel YAML-Manifest für einen Horizontal Pod Autoscaler (HPA)
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: myapp-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myapp-deployment
minReplicas: 1
maxReplicas: 10
metrics:
– type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50

Schritt 3: Automatische Skalierung von Anwendungen mit dem Metrics Server

In diesem Schritt demonstrieren wir die praktische Anwendung des HPAs und des Metrics Servers anhand von zwei Szenarien: konstante und variable Last. Im ersten Szenario verwenden wir eine CPU-intensive Anwendung, während im zweiten Szenario externe Last durch schnelle HTTP-Anfragen simuliert wird. Sie erfahren, wie Sie die HPA für beide Szenarien konfigurieren und beobachten, wie sie automatisch auf die Last reagiert und die Anzahl der Pods entsprechend anpasst.


# Beispiel YAML-Manifest für eine Anwendung mit konstanter Last und HPA
apiVersion: apps/v1
kind: Deployment
metadata:
name: constant-load-app
spec:
replicas: 1
selector:
matchLabels:
app: constant-load
template:
metadata:
labels:
app: constant-load
spec:
containers:
– name: constant-load
image: busybox
resources:
limits:
cpu: 200m
command: [„sh“, „-c“]
args: [„while true; do echo ‚Constant Load‘; sleep 1; done“]

Fazit

Die effiziente Skalierung von Kubernetes-Anwendungen ist ein wesentlicher Bestandteil des Betriebs von Container-basierten Workloads. Durch die Kombination des Horizontal Pod Autoscalers mit dem Metrics Server können Sie die Leistung Ihrer Anwendungen optimieren, Ressourcen effizient nutzen und gleichzeitig die Kosten für Ihre Kubernetes-Infrastruktur senken. Mit diesen Tools sind Sie bestens gerüstet, um Ihren Kubernetes-Cluster skalierbar und stabil zu betreiben. Optimierung der Kubernetes-Ressourcennutzung: Horizontal Pod Autoscaler und Metrics Server im Fokus

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren:

centron Managed Cloud Hosting in Deutschland

Java-Array: So prüfst du Werte effizient

JavaScript
Wie prüft man, ob ein Java Array einen Wert enthält? Es gibt viele Möglichkeiten, um zu überprüfen, ob ein Java Array einen bestimmten Wert enthält. Einfache Iteration mit einer for-Schleife…
centron Managed Cloud Hosting in Deutschland

Wie berechnet man den BLEU-Score in Python?

Python
Wie berechnet man den BLEU-Score in Python? Der BLEU-Score in Python ist eine Metrik, die die Güte von maschinellen Übersetzungsmodellen misst. Ursprünglich wurde er nur für Übersetzungsmodelle entwickelt, wird jedoch…