Erstellen eines StatefulSets
Erstellen Sie eine Datei mit dem Namen statefulset.yaml
mit folgendem Inhalt:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
serviceName: "web"
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.19.7
ports:
- containerPort: 80
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi
In dieser Datei definieren wir ein StatefulSet namens web
, das drei Replikate eines NGINX-Pods erstellt. Wir definieren auch einen Service namens web
, der die NGINX-Pods mithilfe der app: nginx
-Bezeichnung auswählt. Schließlich definieren wir eine Vorlage für einen persistenten Volumenanfrage (Persistent Volume Claim) für die Daten des NGINX-Pods.
Um das StatefulSet zu erstellen, führen Sie den folgenden Befehl aus:
kubectl apply -f statefulset.yaml
Sie können den Status des StatefulSets überprüfen, indem Sie den folgenden Befehl ausführen:
kubectl get statefulsets
Sobald das StatefulSet läuft, können Sie auf die NGINX-Pods zugreifen, indem Sie den folgenden Befehl ausführen:
kubectl get pods
kubectl exec -it web-0 -- /bin/bash
Ersetzen Sie web-0
durch den Namen eines beliebigen NGINX-Pods, der vom StatefulSet erstellt wurde.
Herzlichen Glückwunsch, Sie haben erfolgreich ein StatefulSet in Kubernetes erstellt!