Ejercicio: Demostración de la resistencia del microservicio en Kubernetes

Completado

Una de las ventajas de Kubernetes es la compatibilidad con la administración de configuración declarativa. Los servicios que defina en los archivos de configuración se conservarán a toda costa.

Esto significa que, si se produce un error, Kubernetes reinicia automáticamente los servicios que estaban en ejecución antes del error.

Ahora se verá esta resistencia en acción. Para ello, se eliminará el pod storefrontend y, luego, se confirmará que Kubernetes lo ha reiniciado.

  1. En primer lugar, en el TERMINAL del codespace, ejecute kubectl get pods y anote el nombre, incluida la cadena aleatoria, del pod storefrontend. Este es un ejemplo de salida:

    @user-name /workspaces/eShopLite % kubectl get pods
    
    NAME                             READY   STATUS    RESTARTS   AGE
    productsbackend-7445bdb5c9-pnpk6 1/1     Running   0          31m
    storefrontend-5b6cc765c4-hjpx4   1/1     Running   0          63m
    
  2. Ahora, elimine el pod storefrontend mediante el comando kubectl delete. Debe especificar el nombre completo del pod, incluida la cadena aleatoria.

    kubectl delete pod storefrontend-5b6cc765c4-hjpx4
    

    Recibirá un mensaje inmediatamente que indica que se ha eliminado el pod.

  3. Dado que Kubernetes mantiene el estado del sistema declarado en los archivos de configuración, inicia inmediatamente otra instancia de pod. Para confirmarlo, ejecute kubectl get pods.

    @user-name /workspaces/eShopLite % kubectl get pods
    
    NAME                             READY   STATUS    RESTARTS   AGE
    productsbackend-7445bdb5c9-pnpk6 1/1     Running   0          31m
    storefrontend-5b6cc765c4-vwmv8   1/1     Running   0          7s
    

    Observe que la cadena aleatoria que sigue al nombre storefrontend ha cambiado, lo que indica que el pod es una instancia nueva. Además, el valor AGE también es considerablemente menor.

En este ejercicio, ha aprendido cómo Kubernetes mantiene automáticamente el estado del sistema declarado, incluso si se produce un error.

Comprobación de conocimientos

1.

¿Cuál es la razón por la que Kubernetes reinicia los pods cuando se produce un error en ellos?