Taller Kubernetes: Trabajando con ReplicaSet

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

  • 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
    
  • Creamos el recurso:
    kubectl apply -f test-web-replica.yaml
    
  • 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
    

2

  • 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
    

3

  • Vamos a comprobar la escalabilidad: escala el ReplicaSet para tener 6 Pods de la aplicación.
    kubectl scale rs test-web-replica --replicas=6
    

4

  • Elimina el ReplicaSet y comprueba que se han borrado todos los Pods.
    kubectl delete rs test-web-replica
    

5