Basis van cloud en containers
Bij een webapplicatie op Kubernetes is de controle van de liveness-probe zo gemaakt dat ze ook nagaat of de applicatie verbinding kan maken met de database waarvan ze afhangt. Welk probleem is met deze instelling het meest waarschijnlijk?
- AAls de database stopt, worden de Pods automatisch verplaatst naar de node waarop de database draait, waardoor de andere applicaties op die node trager worden
- BEen korte storing van de database laat de containers van alle Pods herhaaldelijk herstarten, waardoor het herstel ook na de terugkeer van de database wordt vertraagd
- CAls de liveness-probe faalt, wordt de Pod alleen uit de doelen van de Service gehaald; er ontstaat dus geen bijzonder probleem
Antwoord en toelichting tonen
Antwoord: B. Een korte storing van de database laat de containers van alle Pods herhaaldelijk herstarten, waardoor het herstel ook na de terugkeer van de database wordt vertraagd
Een liveness-probe is er om een container die zelf niet meer reageert (bijvoorbeeld door een deadlock), te herstellen door hem te herstarten. Als ze ook een afhankelijkheid controleert, falen bij het stoppen van de database de liveness-probes van alle Pods en worden de containers steeds opnieuw herstart, hoewel herstarten niets oplost. Tijdens het herstarten worden geen aanvragen verwerkt, en de wachttijd tot de volgende herstart kan bij herhaalde herstarts groeien; het herstel wordt dus ook na de terugkeer van de database vertraagd. Een liveness-probe hoort alleen te controleren of het proces zelf kan antwoorden, en de toestand van afhankelijkheden wordt zo nodig met readiness-probes of met de foutafhandeling van de applicatie behandeld.