Lab 05: ReplicaSet¶
Dieses Beispiel illustriert, welche Rolle ReplicaSets bei Kubernetes spielen. Die Ressource, die wir uns anschauen, ist in manifest.yaml definiert. Bitte auch hier wieder daran denken, mit PowerShell in das korrekte Verzeichnis zu wechseln.
manifest.yaml:
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: replicaset-demo
spec:
replicas: 3
selector:
matchLabels:
app: replicaset-demo
template:
metadata:
labels:
app: replicaset-demo
spec:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app: deployment-recreate-demo
containers:
- name: nginx
image: nginx:1.29.4
ports:
- containerPort: 80
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 10
periodSeconds: 20
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "200m"
memory: "256Mi"
Führe die folgenden Schritte durch, um die Demo zu starten:
Erstelle das ReplicaSet mit dem Manifest:
kubectl apply -f manifest.yaml
Das Manifest enthält ein ReplicaSet von drei NGINX-Pods. Stelle sicher, dass alle Pods korrekt erstellt wurden:
kubectl get pods --selector=app=replicaset-demo
Dieser Befehlt funktioniert so, wie er ist, weil alle Pods das Label app=replicaset-demo tragen. Wenn du dir nicht
sicher bist, warum das so ist, schau noch einmal in das Manifest. Dort wirst du das Label im Template finden.
Lösche nun einen Pod:
kubectl delete pod <POD_NAME>
Prüfe die Podliste erneut.
kubectl get pods --selector=app=replicaset-demo
Das ReplicaSet sollte nun wieder einen dritten Pod angelegt haben. Falls nicht, musst du vielleicht ein paar Sekunden warten.
Aufräumen¶
kubectl delete replicaset.apps/replicaset-demo