Stoppa och starta ett AKS-kluster (Azure Kubernetes Service)
Du kanske inte behöver köra dina arbetsbelastningar i Azure Kubernetes Service (AKS) kontinuerligt. Du kan till exempel ha ett utvecklingskluster som du bara använder under kontorstid. Det innebär att det finns tillfällen då klustret kan vara inaktivt och inte kör något annat än systemkomponenterna. Du kan minska klustrets fotavtryck genom att skala alla User
nodpooler till 0, men poolen System
måste fortfarande köra systemkomponenterna medan klustret körs.
Om du vill optimera dina kostnader bättre under dessa perioder kan du inaktivera eller stoppa klustret. Den här åtgärden stoppar kontrollplanet och agentnoderna så att du kan spara på alla beräkningskostnader, samtidigt som alla objekt utom fristående poddar bibehålls. Klustertillståndet lagras för när du startar det igen, så att du kan fortsätta där du slutade.
Varning
Om du stoppar klustret frigörs kontrollplanet och kapaciteten frigörs. I regioner som har kapacitetsbegränsningar kan det hända att kunderna inte kan starta ett stoppat kluster. Vi rekommenderar inte att du stoppar verksamhetskritiska arbetsbelastningar av den anledningen.
Kommentar
AKS-startåtgärder återställer alla objekt från ETCD med undantag för fristående poddar med samma namn och åldrar. vilket innebär att en podds ålder fortsätter att beräknas från den ursprungliga skapandetiden. Antalet fortsätter att öka med tiden, oavsett om klustret är i ett stoppat tillstånd.
Innan du börjar
Den här artikeln förutsätter att du har ett befintligt AKS-kluster. Om du behöver ett AKS-kluster kan du skapa ett med hjälp av Azure CLI, Azure PowerShell eller Azure Portal.
Om funktionen för att stoppa/starta klustret
När du använder funktionen för klusterstopp/start gäller följande villkor:
- Den här funktionen stöds endast för vm-skalningsuppsättningsbackade kluster.
- Du kan inte stoppa kluster som använder nap-funktionen (Node Autoprovisioning).
- Klustertillståndet för ett stoppat AKS-kluster bevaras i upp till 12 månader. Om klustret har stoppats i mer än 12 månader kan du inte återställa tillståndet. Mer information finns i AKS-supportprinciperna.
- Du kan bara utföra start- eller borttagningsåtgärder i ett stoppat AKS-kluster. Om du vill utföra andra åtgärder, till exempel skalning eller uppgradering, måste du starta klustret först.
- Om du har etablerat PrivateEndpoints som är länkade till privata kluster måste de tas bort och återskapas igen när du startar ett stoppat AKS-kluster.
- Eftersom stoppprocessen tömmer alla noder tas alla fristående poddar (dvs. poddar som inte hanteras av en distribution, StatefulSet, DaemonSet, Jobb osv.) bort.
- När du startar säkerhetskopieringen av klustret förväntas följande beteende:
- IP-adressen för din API-server kan ändras.
- Om du använder autoskalning av kluster kan det hända att det aktuella antalet noder inte ligger mellan de minsta och högsta intervallvärden som du anger när du startar klustret. Klustret börjar med det antal noder som behövs för att köra dess arbetsbelastningar, vilket inte påverkas av autoskalningsinställningarna. När klustret utför skalningsåtgärder påverkar minimi- och maximivärdena ditt aktuella antal noder, och ditt kluster kommer så småningom att hamna i och ligga kvar inom det önskade intervallet tills du stoppar klustret.
Stoppa ett AKS-kluster
az aks stop
Använd kommandot för att stoppa ett AKS-kluster som körs, inklusive noderna och kontrollplanet. I följande exempel stoppas ett kluster med namnet myAKSCluster:az aks stop --name myAKSCluster --resource-group myResourceGroup
Kontrollera att klustret har slutat använda
az aks show
kommandot och bekräfta att visaspowerState
somStopped
.az aks show --name myAKSCluster --resource-group myResourceGroup
Dina utdata bör se ut ungefär som följande komprimerade exempelutdata:
{ [...] "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2", "powerState":{ "code":"Stopped" }, "privateFqdn": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", [...] }
Om visar
provisioningState
Stopping
har klustret inte helt stoppats ännu.
Viktigt!
Om du använder Pod Disruption-budgetar kan stoppåtgärden ta längre tid eftersom tömningsprocessen tar längre tid att slutföra.
Starta ett AKS-kluster
Varning
När du har använt start-/stoppfunktionen i AKS är det viktigt att vänta 15–30 minuter innan du startar om AKS-klustret. Den här väntetiden är nödvändig eftersom det tar flera minuter för de relevanta tjänsterna att stoppas helt. Försök att starta om klustret under den här processen kan störa avstängningsprocessen och potentiellt orsaka problem med klustret eller dess arbetsbelastningar.
az aks start
Använd kommandot för att starta ett stoppat AKS-kluster. Klustret startas om med det tidigare kontrollplanets tillstånd och antalet agentnoder. I följande exempel startas ett kluster med namnet myAKSCluster:az aks start --name myAKSCluster --resource-group myResourceGroup
Kontrollera att klustret har börjat använda
az aks show
kommandot och bekräfta att visarRunning
powerState
.az aks show --name myAKSCluster --resource-group myResourceGroup
Dina utdata bör se ut ungefär som följande komprimerade exempelutdata:
{ [...] "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2", "powerState":{ "code":"Running" }, "privateFqdn": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", [...] }
Om visar
provisioningState
Starting
har klustret inte startats helt än.
Nästa steg
- Information om hur du skalar
User
pooler till 0 finns i SkalaUser
pooler till 0. - Information om hur du sparar kostnader med hjälp av instanser av oanvänd kapacitet finns i Lägga till en nodpool för oanvänd kapacitet i AKS.
- Mer information om AKS-supportprinciper finns i AKS-supportprinciper.
Azure Kubernetes Service