Crear un StatefulSet
Crea un archivo llamado statefulset.yaml
con el siguiente contenido:
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
En este archivo, definimos un StatefulSet llamado web
que crea tres réplicas de un pod de NGINX. También definimos un servicio llamado web
que selecciona los pods de NGINX utilizando la etiqueta app: nginx
. Finalmente, definimos una plantilla de solicitud de volumen persistente para los datos del pod de NGINX.
Para crear el StatefulSet, ejecuta el siguiente comando:
kubectl apply -f statefulset.yaml
Puedes verificar el estado del StatefulSet ejecutando el siguiente comando:
kubectl get statefulsets
Una vez que el StatefulSet esté en ejecución, puedes acceder a los pods de NGINX ejecutando el siguiente comando:
kubectl get pods
kubectl exec -it web-0 -- /bin/bash
Reemplaza web-0
con el nombre de cualquier pod de NGINX creado por el StatefulSet.
¡Felicidades, has creado con éxito un StatefulSet en Kubernetes!