Exercício - Comprove a resiliência de microsserviços no Kubernetes

Concluído

Um dos benefícios do Kubernetes é o suporte para gerenciamento de configuração declarativa. Os serviços definidos nos arquivos de configuração serão mantidos a todo custo.

Isso significa que, se houver uma falha, o Kubernetes reinicia automaticamente os serviços que estavam em execução antes da falha.

Vamos ver essa resiliência em ação excluindo o pod e, em seguida, verificando se o storefrontend Kubernetes o reiniciado.

  1. Primeiro, no TERMINAL no codespace, execute kubectl get pods e anote o nome, incluindo a string aleatória, do storefrontend pod. Aqui está um exemplo de saída:

    @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. Agora, exclua o pod usando o storefrontend kubectl delete comando. Você precisa especificar o nome completo do pod, incluindo a string aleatória.

    kubectl delete pod storefrontend-5b6cc765c4-hjpx4
    

    Você receberá uma mensagem imediatamente informando que o pod foi excluído.

  3. Como o Kubernetes mantém o estado do sistema conforme declarado nos arquivos de configuração, ele inicia imediatamente outra instância do pod. Você pode verificar isso executando 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 a cadeia de caracteres aleatória após o nome foi alterada, indicando que o storefrontend pod é uma nova instância. Além disso, o valor AGE também é consideravelmente menor.

Neste exercício, você aprendeu como o Kubernetes mantém automaticamente o estado declarado do sistema, mesmo se houver uma falha.

Verifique o seu conhecimento

1.

Qual é a razão pela qual o Kubernetes reinicia os pods quando eles falham?