Esercizio - Dimostrare la resilienza dei microservizi in Kubernetes
- 3 minuti
Uno dei vantaggi di Kubernetes è il supporto per la gestione della configurazione dichiarativa. I servizi definiti nei file di configurazione vengono mantenuti a tutti i costi.
Se quindi si verifica un errore, Kubernetes riavvierà automaticamente i servizi che erano in esecuzione prima dell'errore.
Per vedere in azione questa resilienza, si eliminerà il pod storefrontend e si verificherà che Kubernetes lo abbia riavviato.
Per prima cosa, nel TERMINALE del codespace eseguire
kubectl get podse prendere nota del nome, inclusa la stringa casuale, del podstorefrontend. Ecco un output di esempio:@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 63mEliminare ora il pod
storefrontendusando il comandokubectl delete. È necessario specificare il nome completo del pod, inclusa la stringa casuale.kubectl delete pod storefrontend-5b6cc765c4-hjpx4Verrà immediatamente visualizzato un messaggio che informa che il pod è stato eliminato.
Dal momento che Kubernetes mantiene lo stato del sistema dichiarato nei file di configurazione, verrà immediatamente avviata un'altra istanza del pod. È possibile verificarlo eseguendo
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 7sSi noti che la stringa casuale che segue il nome
storefrontendè modificata, a indicare che il pod è una nuova istanza. Anche il valore AGE è notevolmente minore.
In questo esercizio si è visto in che modo Kubernetes mantiene automaticamente lo stato del sistema dichiarato, anche in caso di errore.