Kubernetes Deployment kubectl Befehle
Kubernetes Pods stellen die grundlegenden Bausteine einer Kubernetes-Anwendung dar. Jeder Pod repräsentiert eine Laufzeitumgebung für einen oder mehrere Container, die eng zusammenarbeiten. Innerhalb des Pods teilen sich die Container Netzwerk- und Speicherressourcen und bilden eine logische Einheit für die Anwendungsdeployment.
Ein Deployment in Kubernetes ist ein höheres Konstrukt, das Pods und ReplicaSets verwaltet. Es ermöglicht das deklarative Update von Pods und ReplicaSets. Ein Deployment beschreibt einen gewünschten Zustand der Anwendung, und der Deployment Controller ändert den aktuellen Zustand zum gewünschten Zustand mit einer bestimmten Geschwindigkeit (Rolling-Update oder Rollback).
ReplicaSets sind eine weitere Schlüsselkomponente. Ein ReplicaSet stellt sicher, dass eine spezifizierte Anzahl von Pod-Replikaten zu jedem Zeitpunkt ausgeführt wird. Es bietet Redundanz und Stabilität für die Anwendung, indem es den Ausfall einzelner Instanzen von Pods handhabt. Wenn ein Pod fehlschlägt oder gelöscht wird, erstellt das ReplicaSet einen neuen, um die gewünschte Anzahl an Replikaten beizubehalten.
Die Architektur von Kubernetes mit Pods, ReplicaSets und Deployments wurde gewählt, um eine zuverlässige und skalierbare Orchestrierung von Containern zu ermöglichen. Sie fördert die Unabhängigkeit von einzelnen Container-Instanzen, indem sie Redundanz und Selbstheilung auf Pod-Ebene einführt. Diese Abstraktionsebenen erlauben es den Entwicklern und Administratoren, komplexe Anwendungen einfach zu verwalten und fortlaufend zu aktualisieren, ohne sich um die individuelle Container-Instanzen kümmern zu müssen.
Ein Kubernetes Deployment ist eine höhere Abstraktionsebene über Pods und ReplicaSets und ermöglicht die automatische Aktualisierung von Container-Images und Replikation. Es bietet Funktionen wie Zero-Downtime-Updates und Rollback.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: my-image:1.0Kommandos
kubectl apply -f deployment.yamlkubectl get deploymentskubectl set image deployment/my-deployment my-container=my-image:2.0kubectl rollout undo deployment/my-deploymentSkalieren kann entweder durch Änderung der replicas in
der YAML-Datei oder durch den Befehl kubectl scale
erfolgen:
kubectl scale deployment my-deployment --replicas=4Liveness und Readiness Probes können zur Überwachung der Pod-Gesundheit hinzugefügt werden.
livenessProbe:
httpGet:
path: /health
port: 8080
readinessProbe:
httpGet:
path: /ready
port: 8080