Ein Deployment in Kubernetes ermöglicht es Ihnen, deklarative Updates für Pods und ReplicaSets durchzuführen. Deployments sind besonders nützlich für das Rollout von Zustandsänderungen oder das Zurücksetzen auf frühere Versionen. Es gibt zwei grundlegende Methoden, ein Deployment zu erstellen: deklarativ und imperativ.
Die deklarative Methode verwendet eine YAML- oder JSON-Konfigurationsdatei, die den gewünschten Zustand des Deployments beschreibt.
kubectl apply -f filename.yaml
Diese Datei enthält alle Spezifikationen des Deployments, einschließlich des Namens, der gewünschten Anzahl von Replikas, des Container-Images und der notwendigen Ports.
Beispiel für eine deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: myapp-image
ports:
- containerPort: 80Bei der imperativen Methode führen Sie Befehle direkt aus, um ein Deployment zu erstellen und zu verwalten.
Ein einfaches Deployment erstellen:
kubectl create deployment NAME --image=[IMAGE-NAME] --replicas=[NUMBER]Ein Deployment mit der Dry-Run-Option erstellen, um die Aktion zu simulieren:
kubectl create deployment NAME --image=[IMAGE-NAME] --replicas=[NUMBER] --dry-run=clientUm laufende Deployments anzuzeigen:
kubectl get deploymentsUm Details der von einem Deployment erzeugten Pods zu erhalten:
kubectl get pods --show-labelsUm Pods anhand ihrer Labels zu filtern:
kubectl get pods -l [LABEL]Jede Methode hat ihre eigenen Vorteile: Während die deklarative Methode empfohlen wird, um Zustandsänderungen in der Versionskontrolle nachzuverfolgen, ist die imperative Methode für schnelle, ad-hoc Operationen nützlich. In produktiven Umgebungen ist es üblich, die deklarative Methode zu verwenden, da sie eine klarere Dokumentation des Systemzustands bietet und leichter wiederholbare Prozesse ermöglicht.