Exercício - Comprove a resiliência de microsserviços no Kubernetes
Um dos benefícios do Kubernetes é o suporte para gerenciamento de configuração declarativa. Os serviços definidos nos arquivos de configuração são retidos 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.
Primeiro, no TERMINAL no espaço de código, execute
kubectl get pods
e anote o nome, incluindo a cadeia de caracteres aleatória, dostorefrontend
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
Agora, exclua o
storefrontend
pod usando okubectl delete
comando. Você precisa especificar o nome completo do pod, incluindo a string aleatória.kubectl delete pod storefrontend-5b6cc765c4-hjpx4
Você recebe uma mensagem imediatamente informando que o pod foi excluído.
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
storefrontend
nome é alterada, indicando que o 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.