Introducción

En este taller vamos a trabajar con ReplicaSet, que es un objeto de Kubernetes que nos permite crear un conjunto de Pods idénticos. En este caso, vamos a crear un ReplicaSet que va a controlar un conjunto de Pods.

Creando un ReplicaSet

  1. Creamos un fichero yaml con la descripción del recurso ReplicaSet, teniendo en cuenta los siguientes aspectos:

    • Indicaremos nombres distintos para el ReplicaSet y para el contenedor de los Pods que va a controlar.
    • El ReplicaSet va a crear 3 réplicas.
    • La imagen que debemos desplegar es iesgn/test_web:latest.
    • Indicaremos de manera adecuada una etiqueta en la especificación del Pod que vas a definir que coincida con el selector del ReplicaSet.
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: test-web-replica
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web-test
  template:
    metadata:
      labels:
        app: web-test
    spec:
      containers:
        - image: iesgn/test_web:latest
          name: container-test-web
  1. Creamos el recurso:
kubectl apply -f test-web-replica.yaml
  1. Comprobamos que se ha creado el ReplicaSet:
kubectl get rs,pods
  1. Obtenemos la información detallada del ReplicaSet:
kubectl describe rs test-web-replica
  1. Vamos a probar la tolerancia a fallos: Elimina uno de los 3 Pods, y comprueba que inmediatamente se ha vuelto a crear un nuevo Pod
  • Obtenemos el nombre del Pod que queremos eliminar:
kubectl get pods
  • Eliminamos el Pod:
kubectl delete pod test-web-replica-96tvz
  1. Vamos a comprobar la escalabilidad: escala el ReplicaSet para tener 6 Pods de la aplicación.
kubectl scale rs test-web-replica --replicas=6
  1. Elimina el ReplicaSet y comprueba que se han borrado todos los Pods.
kubectl delete rs test-web-replica