Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze zelfstudie implementeert u een voorbeeld van een retailtoepassing in een zone-redundant Azure Kubernetes Service (AKS)-cluster en gebruikt u vervolgens een Azure Chaos Studio werkruimte om een fout in de beschikbaarheidszone twee keer te simuleren. De eerste test brengt een reëel tekort in de veerkracht aan het licht: de front-end van de applicatie is bewust vastgezet op één zone, waardoor de webwinkel uitvalt als die zone uitvalt. Vervolgens lost u de implementatie op, voert u hetzelfde scenario opnieuw uit en bekijkt u hoe de toepassing door de fout loopt. Onderweg start u een browsermonitor die de fout en de oplossing laat zien terwijl deze zich voordoen, en leert u waarom de eigen beschikbaarheid van de winkel en de knooppuntstatus van het cluster op hetzelfde moment niet veranderen.
Deze zelfstudie is een goede eerste demo en hergebruikt de voorbeeldtoepassing AKS store demo uit de AKS-quickstarts, waardoor er geen containerregister of buildstap nodig is. Plan ongeveer een uur: het maken van clusters plus twee scenario's van ongeveer 5 minuten.
Important
Chaos Studio werkruimten en scenario's zijn beschikbaar als openbare preview. Microsoft biedt deze preview 'zoals is' en 'als beschikbaar' en valt deze niet onder serviceovereenkomsten of beperkte garantie. Microsoft biedt klantenondersteuning voor de preview op basis van best effort. Deze preview is niet bedoeld voor productiegebruik. Zie de volgende artikelen voor meer informatie:
In deze handleiding leer je hoe je:
- Maak een AKS-cluster waarvan de knooppunten drie beschikbaarheidszones omvatten.
- Implementeer de voorbeeldtoepassing voor het AKS-archief en maak de front-end vast aan één zone voor een deterministische demo.
- Start een browsermonitor waarmee de winkel, het doelknooppunt en de plaatsing van pods in realtime worden bijgehouden.
- Maak een werkruimte binnen het bereik van de infrastructuurresourcegroep van het cluster.
- Voer het scenario Compute Zone Down uit en bekijk dat de toepassing mislukt.
- Corrigeer de implementatie met een moeilijk plaatsingscontract per zone, controleer het en voer het scenario opnieuw uit.
- Vergelijk de twee scenariorapporten.
Deze handleiding is gericht op een werkende demo. Zie De tolerantie van workloads op AKS testen met Chaos Studio voor de concepten achter elke stap, de kanttekeningen bij het verstoren van infrastructuur die AKS voor u beheert en hoe u resultaten bij een echte workload interpreteert.
Prerequisites
- Een Azure-abonnement. Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.
- Azure CLI,
kubectl,kubeloginen Python 3 (standaardbibliotheek alleen - geen pakketten te installeren). Azure Cloud Shell is alle vier vooraf geïnstalleerd. Als u lokaal werkt, installeerkubectldan afzonderlijk metaz aks install-clienkubelogin. - De resourceprovider Microsoft.Chaos die in uw abonnement is geregistreerd. Als u de resourceprovider van Chaos Studio voor de eerste keer wilt registreren, raadpleegt u De resourceprovider van Chaos Studio registreren.
Een zone-redundant AKS-cluster maken
Een zonefouttest is alleen zinvol voor een cluster dat is gebouwd om er een te overleven, dus maak een cluster met drie knooppunten verspreid over drie beschikbaarheidszones. In dit voorbeeld wordt VS - oost 2 gebruikt; elke regio met beschikbaarheidszones werkt.
Maak een resourcegroep en het cluster:
az group create --name chaos-demo-rg --location eastus2 az aks create \ --resource-group chaos-demo-rg \ --name chaos-demo-aks \ --node-count 3 \ --zones 1 2 3 \ --generate-ssh-keysHet maken van een cluster duurt enkele minuten.
In een nieuwe Cloud Shell-sessie is
kubectlnog niet verbonden met een cluster. Stel uw abonnement in, haal referenties op en converteer de kubeconfig voor Microsoft Entra verificatie voordat u eenkubectlopdracht uitvoert:az account set --subscription <SUBSCRIPTION_ID> az aks get-credentials --resource-group chaos-demo-rg --name chaos-demo-aks kubelogin convert-kubeconfig -l azurecliVervang uw abonnements-id door
<SUBSCRIPTION_ID>. Slaaz account setover als dit abonnement al uw actieve abonnement is. De stapkubeloginis zelfs in een nieuwe Cloud Shell-sessie vereist; zonder die stap mislukt de eerste opdrachtkubectlbij een met Entra geverifieerd cluster met een authenticatiefout.Controleer of de knooppunten drie zones omvatten:
kubectl get nodes -L topology.kubernetes.io/zoneDe
ZONEkolom toont één knooppunt in elke zone, zoalseastus2-1,eastus2-2eneastus2-3. Het zonenummer na de naam van de regio is het nummer waarop u zich later in de configuratie van het scenario richt.
De voorbeeldtoepassing implementeren
De demo van de AKS-winkel is een kleine winkel met een webfront-end, een productservice, een orderservice en een RabbitMQ-wachtrij. De containerinstallatiekopieën zijn openbaar, zodat u deze met één opdracht kunt implementeren.
De toepassing implementeren:
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/2.2.0/aks-store-quickstart.yamlHet manifest implementeert elk onderdeel met één replica. Het cluster is zone-redundant, maar de toepassing is dat niet. Deze tutorial brengt deze kloof in de veerkracht aan het licht en verhelpt die vervolgens.
Wacht tot de front-end een openbaar IP-adres heeft:
kubectl get service store-front --watchWanneer de waarde van
EXTERNAL-IPverandert van<pending>naar een openbaar IP-adres, druk opCtrl+Com het watchproces te stoppen.Open
http://<EXTERNAL-IP>in een browser en bevestig dat de store wordt geladen. Houd dit tabblad geopend. Het is een secundaire weergave van de toepassingsstatus tijdens de test. De monitor die u later start, is de primaire.
Zie de reeks AKS-zelfstudies voor meer informatie over hoe de toepassing zelf is gebouwd en geïmplementeerd.
De front-end vastmaken aan één zone voor een deterministische demo
Note
Het vastzetten van één replica aan één zone is een bewust didactisch opgezette configuratie voor deze demo, geen aanbeveling voor productiegebruik. Een productie-uitrol mag nooit één replica aan één zone binden - daarmee verdwijnt de redundantie die het cluster juist biedt. Deze tutorial doet dit bewust, zodat de fout in run 1 betrouwbaar en reproduceerbaar is, in plaats van af te hangen van de zone die de scheduler toevallig heeft gekozen.
Zonder een opzettelijke pin kan de scheduler de enkele replica van de front-end in een zone plaatsen en kan een eenvoudige herplanning snel genoeg gebeuren dat de impact gemakkelijk te missen is. Als u de replica vastmaakt aan een bekende zone, is het doel voorspelbaar en kan de fout worden waargenomen telkens wanneer u de demo uitvoert.
Zoek het knooppunt waarop de
store-frontpod momenteel wordt uitgevoerd en lees het zonelabel van dat knooppunt:STORE_NODE="$(kubectl get pods -l app=store-front -o jsonpath='{.items[0].spec.nodeName}')" PIN_ZONE="$(kubectl get node "$STORE_NODE" -o jsonpath="{.metadata.labels['topology\.kubernetes\.io/zone']}")" echo "$PIN_ZONE"PIN_ZONEis het volledige zonelabel, zoalseastus2-1. Houd deze shellsessie open. U gebruikt deze waarde opnieuw voor de monitor en later voor de scenarioconfiguratie (waarin alleen het getal wordt gevraagd, het deel na het laatste afbreekstreepje, bijvoorbeeld1ineastus2-1).Pas de
store-front-deployment aan om inplanning in die zone te vereisen en voeg een annotatie toe die de patch markeert als een patroon dat alleen voor demo's is bedoeld:kubectl patch deployment store-front --patch "$(cat <<EOF { "metadata": { "annotations": { "chaos-demo.aks-zone-down-demo/deliberate-anti-pattern": "Pins the single front-end replica to zone ${PIN_ZONE} so run 1 is deterministic. Removed as part of the fix later in this tutorial - do not carry this pin into a real deployment." } }, "spec": { "template": { "spec": { "affinity": { "nodeAffinity": { "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": [ { "matchExpressions": [ {"key": "topology.kubernetes.io/zone", "operator": "In", "values": ["${PIN_ZONE}"]} ] } ] } } } } } } } EOF )" kubectl rollout restart deployment/store-front kubectl rollout status deployment/store-front --timeout=300sBevestig dat de pin is behouden - de replica moet weer op een knooppunt in
$PIN_ZONEstaan:STORE_NODE="$(kubectl get pods -l app=store-front -o jsonpath='{.items[0].spec.nodeName}')" STORE_ZONE="$(kubectl get node "$STORE_NODE" -o jsonpath="{.metadata.labels['topology\.kubernetes\.io/zone']}")" echo "Pod is in zone: $STORE_ZONE (expected $PIN_ZONE)"Als de twee waarden niet overeenkomen, herhaal dan de vorige stap - run 1 zal niet deterministisch zijn totdat ze wel overeenkomen.
De demomonitor downloaden en starten
Een kubectl watch alleen in de terminal is te langzaam en tijdens een live demo makkelijk te missen. Het eigen signaal van de storefront beweegt niet gelijk op met dat van het cluster. In deze zelfstudie wordt een klein Python monitorscript uit de opslagplaats met Chaos Studio voorbeelden gebruikt als primaire manier om de uitvoering te bekijken.
Download de monitor en het fix-verification-script:
curl -O https://raw.githubusercontent.com/microsoft/chaos-studio/f9573c943694e88cf3aacbca38debe84fa91a62c/samples/aks-zone-down-demo/monitor.py curl -O https://raw.githubusercontent.com/microsoft/chaos-studio/f9573c943694e88cf3aacbca38debe84fa91a62c/samples/aks-zone-down-demo/verify-fix.sh chmod +x verify-fix.shDeze links zijn vastgezet op een specifieke commit, zodat ze blijven werken, ongeacht latere wijzigingen in het voorbeeld. Zodra de bijbehorende pull request is samengevoegd, kunnen latere revisies van deze tutorial in plaats daarvan worden omgezet naar een getagde release.
Start de monitor en wijs deze aan op het externe IP-adres van de winkel en de zone die u in de vorige sectie hebt vastgemaakt:
python3 monitor.py --storefront-url http://<EXTERNAL-IP> --target-zone "$PIN_ZONE"De monitor gebruikt alleen de Python standaardbibliotheek, dus er is niets anders om te installeren. Standaard wordt elke 5 seconden gepeild: configureerbaar met
--intervalof deMONITOR_INTERVAL_SECONDSomgevingsvariabele. Deze standaardwaarde is vaak genoeg om de volgorde van de signalen op te lossen zonder de Kubernetes-API of de winkel te agressief te peilen.Selecteer in Cloud Shell Web Preview en stel de poort in op 8787 om de monitor in een browsertabblad te openen. Als u lokaal werkt, opent u in plaats daarvan
http://localhost:8787.De monitorpagina is nu uw primaire weergave voor beide uitvoeringen. Er worden vier signalen weergegeven:
- HTTP-status van de webshop - een cache-omzeilend verzoek naar de webshop, zodat u de actuele status bereikbaar/niet bereikbaar ziet in plaats van een gecachte succesvolle status.
-
Status van doelzoneknooppunt : of het knooppunt in uw doelzone is
ReadyofNotReady. -
Plaatsing van front-endpods - welke
store-frontpods actief zijn en in welke zone elke pod zich bevindt. - Overgangsgeschiedenis : een actieve tijdlijn van elke statuswijziging hierboven, met tijdstempels, zodat u de volgorde kunt controleren nadat de uitvoering is beëindigd in plaats van te vertrouwen op wat u live hebt opgemerkt.
Als een controle van
kubectlof de Kubernetes-API mislukt, bijvoorbeeld omdat de API-server kort niet bereikbaar is of de kubeconfig verouderd is, toont de monitor een zichtbare rode banner met de foutmelding, in plaats van het getroffen signaal op de placeholder 'controleren' te laten staan. De overige delen van het dashboard blijven de laatst bekende correcte status en geschiedenis tonen zolang de banner zichtbaar is. Behandel de banner als een signaal op zichzelf: het betekent dat de monitor geen zicht meer heeft op datgene wat wordt bewaakt, niet dat het naar behoren functioneert.
Een werkruimte maken die is gericht op de infrastructuurresourcegroep
AKS plaatst de virtuele-machineschaalsets van het cluster in een afzonderlijke infrastructuurresourcegroep (die standaard begint metMC_), niet in de resourcegroep die de clusterresource bevat. Stel het bereik van de werkruimte in op de infrastructuurresourcegroep, zodat deze de knooppunten kan detecteren. Zie Waarom een werkruimte die is afgestemd op uw AKS-cluster geen rekendoelen vindt voor achtergrondinformatie.
Zoek de naam van de infrastructuurresourcegroep:
az aks show --resource-group chaos-demo-rg --name chaos-demo-aks --query nodeResourceGroup -o tsvZoek in de Azure-portal naar Chaos Studio, selecteer Werkruimten en selecteer vervolgens Maken.
Selecteer op het tabblad Basisinformatie de
chaos-demo-rgresourcegroep, geef de werkruimtechaos-demo-workspaceeen naam en kies een ondersteunde regio. De werkruimteregio hoeft niet overeen te komen met de clusterregio.Selecteer op het tabblad Bereikde resourcegroep als het bereiktype en selecteer vervolgens de infrastructuurresourcegroep in stap 1.
Kies op het tabblad Identiteitde optie Systeem toegewezen.
Selecteer Beoordelen en maken> en ga vervolgens naar de resource.
Nadat de detectie is voltooid, wordt de virtuele-machineschaalset van het cluster (benoemd als
aks-nodepool1-12345678-vmss) weergegeven als een gedetecteerde resource.Als in het portaal een banner wordt weergegeven waarin staat dat de identiteit geen leesmachtigingen heeft voor het bereik van de werkruimte, selecteert u de rol Lezer toewijzen voor het bereik van de werkruimte. Als u roltoewijzingen wilt maken, hebt u eigenaars- of gebruikerstoegangsbeheerdersrechten voor de infrastructuurresourcegroep nodig.
U kent aan de identiteit de rollen toe die het scenario zelf nodig heeft in de volgende sectie, waar validatie precies aangeeft wat er ontbreekt. Zie de quickstart voor werkruimten voor een volledige uitleg van elke stap bij het maken van een werkruimte.
Voer het scenario uit en bekijk of de app mislukt
In het scenario Compute Zone Down wordt een uitval van een beschikbaarheidszone gesimuleerd door de instanties van de virtuele-machineschaalset in een doelzone uit te schakelen gedurende de geconfigureerde duur. De instanties herstarten zodra de duur van de actie is verstreken.
Selecteer in de werkruimte Scenario’s en selecteer vervolgens Compute Zone Down uit de scenariobibliotheek.
Configureer het scenario. Voer voor de beschikbaarheidszone het nummer uit
$PIN_ZONEin (het deel na het laatste koppelteken, bijvoorbeeld1ineastus2-1). Stel de duur in op 5 minuten - lang genoeg om de storefront-, node- en podsignalen te laten stabiliseren, zonder onnodig lang te hoeven wachten. Dit cijfer van 5 minuten is afgestemd op deze specifieke demo; andere scenariotypen hebben hun eigen richtlijnen voor de duur, afhankelijk van wat ze testen. Een scenario dat is gebouwd rond dns-cachinggedrag, heeft bijvoorbeeld een duur nodig die lang genoeg is om de TTL voor de cache van de record te overschrijden, wat veel langer kan zijn dan 5 minuten. Selecteer Configuratie opslaan.Validatie controleert of de beheerde identiteit van de werkruimte elke actie kan uitvoeren die het scenario nodig heeft voor de doelbronnen. Als validatie rapporteert dat er machtigingen ontbreken, selecteert u Machtigingen herstellen op de configuratiepagina van het scenario om de identiteit de aanbevolen ingebouwde rollen te verlenen. Voor dit scenario is dat: Virtual Machine Contributor op de virtuele-machineschaalset van het knooppunt. Als u de rollen zelf wilt toewijzen of aangepaste rollen met minimale bevoegdheden wilt gebruiken in plaats van ingebouwde rollen, raadpleegt u Machtigingen en identiteit in Chaos Studio Werkruimten en aangepaste rollen met minimale bevoegdheden gebruiken met Chaos Studio Werkruimten.
Als een vereiste rol nog steeds ontbreekt tijdens de uitvoering, wordt de uitvoering toch gestart, maar mislukken de afsluitacties met een machtigingsfout in het scenariorapport.
Selecteer Uitvoeren en bevestigen.
Het kan enkele minuten duren nadat de run is gestart voordat de uitschakeling effect heeft, dus schrik niet als er niet meteen iets verandert op het beeldscherm. Bekijk vervolgens de monitorpagina:
- Het HTTP-signaal van de winkel en de status van het doelknooppunt worden niet op hetzelfde moment gewijzigd. Het signaal op applicatieniveau is wat uw gebruikers daadwerkelijk ervaren, en dat moet als het primaire signaal worden beschouwd; de knooppunt- en podsignalen zijn interne clusteradministratie die pas daarna volgt. Verwacht dat de storefront merkbaar eerder als onbereikbaar wordt weergegeven dan dat het knooppunt
NotReadytoont - dat verschil in timing is normaal, door asynchrone signaalpropagatie, en geen probleem met de demo. - De status van het doelknooppunt wordt gewijzigd in
NotReady. - Omdat de front-end is vastgezet op die zone, kan zijn enige replica daardoor nergens anders draaien. De webshop blijft onbereikbaar totdat Kubernetes de pod opnieuw kan inplannen — wat, zolang de pin van kracht is, alleen gebeurt zodra het doelknooppunt terugkeert of u de plaatsingsbeperking wijzigt. Vertrouw hier niet op een vast getal voor de downtime; bekijk de overgangsgeschiedenis van de monitor om te zien wat er tijdens uw uitvoering daadwerkelijk is gebeurd.
Dit resultaat is de uitkomst. Het cluster was zone-redundant, maar de plaatsingskeuze van de toepassing heeft een zonefout omgezet in een storing zonder gedefinieerd einde terwijl de beperking aanwezig bleef. De statusgeschiedenis van de monitor is het overzicht van precies wanneer de webwinkel offline ging en later weer online kwam.
Problemen oplossen: de impact is niet zichtbaar
Als in de monitor wordt weergegeven dat de winkel bereikbaar blijft gedurende uitvoering 1, controleert u deze items voordat u ervan uitgaat dat het scenario niet werkt:
- Bevestig dat de pincode van kracht is. Voer uit
kubectl get pods -l app=store-front -o wideen controleer of het knooppunt van de pod zich in$PIN_ZONEbevindt. Als de patch niet is toegepast, heeft de planner de replica mogelijk ergens anders geplaatst. Het opnieuw plannen tijdens de storing kan zo snel gaan dat je het zonder de vastzetpin niet opmerkt. - Controleer of de monitor de juiste zone en URL bekijkt. Start
monitor.pyopnieuw op met de exacte waarde van--target-zoneen de storefront-URL van uw cluster. Een verouderde of verkeerd getypte waarde geeft misleidende 'gezonde' status weer. - Controleer het scenariorapport op
Skippedacties. Als de afsluitacties worden weergegevenSkippedin plaats vanSucceeded, heeft de uitvoering geen overeenkomende doelen gevonden in de doelzone. Zie De resultaten interpreteren. - Geef het nog een paar seconden. De afsluitactie zelf duurt even voordat deze van kracht wordt nadat de uitvoering is gestart. De overgangsgeschiedenis van de monitor toont de exacte tijdstempels zodra deze zich voordoen.
De implementatie herstellen en controleren
Vervang nu de opzettelijke single-zone-vastzetting door een echte oplossing op clusterschaal: drie replica's, strikt beperkt tot één per zone.
Verwijder de zonepin die u eerder hebt toegevoegd:
kubectl patch deployment store-front --type=merge --patch '{"spec":{"template":{"spec":{"affinity":null}}}}'Schaal de front-end naar drie replica's en voeg een spreidingsbeperking voor topologie toe waarvoor één replica per zone is vereist in plaats van dat u er alleen de voorkeur aan geeft:
kubectl patch deployment store-front --patch '{"spec":{"replicas":3,"template":{"spec":{"topologySpreadConstraints":[{"maxSkew":1,"topologyKey":"topology.kubernetes.io/zone","whenUnsatisfiable":"DoNotSchedule","labelSelector":{"matchLabels":{"app":"store-front"}}}]}}}}'whenUnsatisfiable: DoNotSchedulemaakt de spreiding van één replica per zone tot een harde vereiste. Een replica die daar niet aan kan voldoen, blijftPendingin plaats van terecht te komen in een zone waar er al een aanwezig is. Dat is een bewuste afweging: het garandeert de zonedekking waar deze test van afhankelijk is, ten koste van het risico dat een replica mogelijk niet wordt ingepland als een zone tijdelijk geen ruimte heeft.ScheduleAnywayzou de scheduler de beperking onder druk laten overslaan, wat precies de foutmodus is die deze oplossing sluit.Controleer de oplossing voordat u deze vertrouwt. Voer het verificatiescript uit. Er wordt gewacht op de implementatie, zodat verouderde pods uit de oude revisie van één replica niet worden geteld en wordt bevestigd dat elke zone ten minste één
Readystore-frontpod heeft:./verify-fix.shEen
kubectlaanroep, een API-aanvraag of de JSON die deze retourneert, kan tijdelijk mislukken, een korte time-out, een verbroken verbinding, zonder dat de fix zelf is mislukt. Het script probeert deze tijdelijke fouten opnieuw uit te voeren totdat er een eigen time-out optreedt in plaats van af te sluiten op de eerste. Pas na het verstrijken van die time-out wordt het proces beëindigd met een niet-nulstatus en een diagnostisch bericht waarin wordt aangegeven in welke zone nog steeds een replica ontbreekt die gereed is. Ga niet verder met run 2 totdat deze succesvol is. Een geslaagde uitkomst zorgt ervoor dat "één replica per zone" een geverifieerd feit is in plaats van een aanname die is overgenomen van de patchopdracht.
Voer het scenario opnieuw uit en vergelijk
Voer in de werkruimte het scenario Compute Zone Down opnieuw uit met dezelfde doelzone en dezelfde duur van 5 minuten.
Kijk naar de monitor. Het doelknooppunt gaat
NotReadynog steeds verder en neemt destore-frontreplica er mee naar beneden, maar de winkel reageert steeds, geleverd door de replica's in de overlevende zones. De bewering die wordt getest is aanhoudende beschikbaarheid tijdens een zone-uitval, aangetoond door de doorlopende geschiedenis van de monitor - niet dat er nul mislukte verzoeken waren, en ook niet dat de monitor gedurende de hele periode onafgebroken een gezonde status laat zien. Een korte onderbreking is nog steeds mogelijk terwijl de Azure Load Balancer overschakelt op de resterende gezonde replica's; een geslaagde testuitvoering laat een korte hapering tijdens de convergentie zien, geen uitval die even lang duurt als de verstoring. Hoe lang deze convergentie duurt, verschilt per omgeving, dus vertrouw niet op een vaste tijdsgrens. Gebruik de overgangsgeschiedenis van de monitor om een tijdelijke blip te vertellen, afgezien van een aanhoudende storing.
Componenten met één replica kunnen nog steeds een korte verstoring ondervinden. Als het knooppunt waarop de RabbitMQ-wachtrij draait zich in de doelzone bevindt, verloopt het indienen van bestellingen trager terwijl de pod herstelt. Het vinden van het volgende zwakste onderdeel en het bepalen of het de moeite waard is om het te verhelpen, is precies de cyclus die chaostesten bedoeld is op gang te brengen.
De scenariorapporten vergelijken
Selecteer in de werkruimte Uitvoeringsgeschiedenis. U hebt nu twee voltooide uitvoeringen van hetzelfde scenario.
Selecteer elke uitvoering en selecteer vervolgens Rapport genereren. Controleer of de afsluitacties in beide gevallen de status Geslaagd weergeven. Dit betekent dat elke uitvoering instanties in de doelzone heeft gevonden en verstoord. Als acties als Overgeslagen staan, heeft de uitvoering geen overeenkomende doelitems gevonden. De gebruikelijke oorzaken zijn een scope die de resourcegroep voor de infrastructuur niet omvat, of een doelzone zonder knooppunten. Zie Workloadtolerantie testen op AKS met Chaos Studio voor meer informatie.
U ziet dat beide rapporten er hetzelfde uitzien, ook al waren de resultaten van de toepassing tegenovergestelde. Gelukt betekent dat de verstoring is uitgevoerd - het betekent niet dat de applicatie gezond bleef. Uit het rapport blijkt welke onderbrekingen er zijn opgetreden en wanneer; de overgangsgeschiedenis van de monitor bewijst het gedrag van de toepassing als reactie. Door beide te combineren, maakt u van een uitvoering bewijs: het rapport legt het tijdstip van de fout vast en de monitor toont het verschil van vóór en na de oplossing.
U kunt zowel rapporten als vóór en na bewijs voor tolerantiebeoordelingen downloaden. Zie Scenariorapporten voor meer informatie.
De hulpbronnen opschonen
Verwijder de resourcegroep om het cluster, de voorbeeldtoepassing en de werkruimte te verwijderen. Als u het cluster verwijdert, wordt ook de bijbehorende resourcegroep voor de infrastructuur verwijderd.
az group delete --name chaos-demo-rg --yes --no-wait
Problemen melden en functies aanvragen
Azure Chaos Studio is ontwikkeld in het open. Als u een fout wilt melden, een functie wilt aanvragen of een vraag wilt stellen over werkruimten, scenario's of de Azure CLI-extensie, opent u een probleem in de Chaos Studio opslagplaats op GitHub. Door een probleem in te dienen, kunt u de voortgang bijhouden en aanvragen van andere klanten bekijken.
Volgende stappen
- De veerkracht van workloads op AKS testen met Chaos Studio behandelt de aandachtspunten en richtlijnen voor de interpretatie van het uitvoeren van deze test op een echte workload.
- Om slagen of falen objectief te maken bij een echte workload, combineert u scenario-uitvoeringen met Application Insights-beschikbaarheidstests en uw eigen service-levelindicatoren in plaats van met een browsertabblad.
- Zelfstudie: Een PostgreSQL-failoverscenario met zone-down uitvoeren voegt een failover van een gegevenslaag toe aan hetzelfde storingspatroon.
- In scenario's in Azure Chaos Studio wordt de volledige scenariobibliotheek beschreven.
- De Chaos Studio GitHub opslagplaats bevat implementatiescripts voor dit voorbeeld (inclusief de scripts voor bewaking en verificatie die in deze zelfstudie worden gebruikt), deelbare aangepaste scenario's en een Copilot CLI-invoegtoepassing voor het stimuleren van Chaos Studio vanuit GitHub Copilot.