De automatische schaalaanpassing van clusters gebruiken in Azure Kubernetes Service (AKS)
Als u de toepassingsvereisten in AKS wilt bijhouden, moet u mogelijk het aantal knooppunten aanpassen waarop uw workloads worden uitgevoerd. Het onderdeel voor automatische schaalaanpassing van clusters controleert op pods in uw cluster die niet kunnen worden gepland vanwege resourcebeperkingen. Wanneer de automatische schaalaanpassing van clusters problemen detecteert, wordt het aantal knooppunten in de knooppuntgroep omhoog geschaald om te voldoen aan de toepassingsvereisten. Het controleert ook regelmatig knooppunten op een gebrek aan actieve pods en schaalt zo nodig het aantal knooppunten omlaag.
In dit artikel leest u hoe u de automatische schaalaanpassing van clusters in AKS inschakelt en beheert. Dit is gebaseerd op de opensource Kubernetes-versie.
Voordat u begint
Voor dit artikel is Azure CLI versie 2.0.76 of hoger vereist. Voer az --version
uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.
De automatische schaalaanpassing van clusters gebruiken in een AKS-cluster
Belangrijk
De automatische schaalaanpassing van clusters is een Kubernetes-onderdeel. Hoewel het AKS-cluster een virtuele-machineschaalset voor de knooppunten gebruikt, moet u de instellingen voor automatische schaalsets niet handmatig inschakelen of bewerken. Laat de automatische schaalaanpassing van Kubernetes-clusters de vereiste schaalinstellingen beheren. Zie Kan ik de AKS-resources in de knooppuntresourcegroep wijzigen voor meer informatie ?
Automatische schaalaanpassing van clusters inschakelen op een nieuw cluster
Maak een resourcegroep met behulp van de
az group create
opdracht.az group create --name myResourceGroup --location eastus
Maak een AKS-cluster met behulp van de
az aks create
opdracht en schakel de automatische schaalaanpassing van clusters in de knooppuntgroep voor het cluster in met behulp van de--enable-cluster-autoscaler
parameter en geef een knooppunt--min-count
en--max-count
op. Met de volgende voorbeeldopdracht maakt u een cluster met één knooppunt dat wordt ondersteund door een virtuele-machineschaalset, schakelt u automatische schaalaanpassing van clusters in, stelt u minimaal één en maximaal drie knooppunten in:az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 1 \ --vm-set-type VirtualMachineScaleSets \ --load-balancer-sku standard \ --enable-cluster-autoscaler \ --min-count 1 \ --max-count 3 \ --generate-ssh-keys
Het duurt enkele minuten om het cluster te maken en de instellingen voor automatische schaalaanpassing van clusters te configureren.
Automatische schaalaanpassing van clusters inschakelen op een bestaand cluster
Werk een bestaand cluster bij met behulp van de
az aks update
opdracht en schakel de automatische schaalaanpassing van het cluster in de knooppuntgroep in met behulp van de--enable-cluster-autoscaler
parameter en geef een knooppunt--min-count
en--max-count
op. Met de volgende voorbeeldopdracht wordt een bestaand AKS-cluster bijgewerkt om de automatische schaalaanpassing van clusters in de knooppuntgroep voor het cluster in te schakelen en minimaal één en maximaal drie knooppunten in te stellen:az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --enable-cluster-autoscaler \ --min-count 1 \ --max-count 3
Het duurt enkele minuten om het cluster bij te werken en de instellingen voor automatische schaalaanpassing van clusters te configureren.
Automatische schaalaanpassing van clusters op een cluster uitschakelen
Schakel de automatische schaalaanpassing van clusters uit met behulp van de
az aks update
opdracht en de--disable-cluster-autoscaler
parameter.az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --disable-cluster-autoscaler
Knooppunten worden niet verwijderd wanneer de automatische schaalaanpassing van clusters is uitgeschakeld.
Notitie
U kunt het cluster handmatig schalen nadat u de automatische schaalaanpassing van clusters hebt uitgeschakeld met behulp van de az aks scale
opdracht. Als u de horizontale schaalaanpassing voor pods gebruikt, blijft deze actief met de automatische schaalaanpassing van clusters uitgeschakeld, maar pods kunnen uiteindelijk niet worden gepland als alle knooppuntbronnen in gebruik zijn.
De automatische schaalaanpassing van clusters opnieuw inschakelen op een cluster
U kunt de automatische schaalaanpassing van clusters op een bestaand cluster opnieuw inschakelen met behulp van de az aks update
opdracht en het opgeven van de --enable-cluster-autoscaler
, --min-count
en --max-count
parameters.
De automatische schaalaanpassing van clusters gebruiken in knooppuntgroepen
De automatische schaalaanpassing van clusters gebruiken in meerdere knooppuntgroepen
U kunt de automatische schaalaanpassing van clusters met meerdere knooppuntgroepen gebruiken en de automatische schaalaanpassing van clusters inschakelen voor elke afzonderlijke knooppuntgroep en er unieke regels voor automatisch schalen aan doorgeven.
Werk de instellingen voor een bestaande knooppuntgroep bij met behulp van de
az aks nodepool update
opdracht.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name nodepool1 \ --update-cluster-autoscaler \ --min-count 1 \ --max-count 5
Automatische schaalaanpassing van clusters in een knooppuntgroep uitschakelen
Schakel de automatische schaalaanpassing van clusters in een knooppuntgroep uit met behulp van de
az aks nodepool update
opdracht en de--disable-cluster-autoscaler
parameter.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name nodepool1 \ --disable-cluster-autoscaler
De automatische schaalaanpassing van clusters opnieuw inschakelen in een knooppuntgroep
U kunt de automatische schaalaanpassing van clusters opnieuw inschakelen in een knooppuntgroep met behulp van de az aks nodepool update
opdracht en het opgeven van de --enable-cluster-autoscaler
, --min-count
en --max-count
parameters.
Notitie
Als u van plan bent om de automatische schaalaanpassing van clusters te gebruiken met knooppuntgroepen die meerdere zones omvatten en gebruikmaken van planningsfuncties met betrekking tot zones, zoals volumetopologische planning, raden we u aan één knooppuntgroep per zone in te schakelen en het profiel voor automatisch schalen in te schakelen --balance-similar-node-groups
. Dit zorgt ervoor dat de automatische schaalaanpassing kan worden opgeschaald en dat de grootte van de knooppuntgroepen evenwichtig blijft.
De instellingen voor automatische schaalaanpassing van clusters bijwerken
Naarmate uw toepassing vraagt om wijzigingen, moet u mogelijk het aantal knooppunten voor automatische schaalaanpassing van clusters aanpassen om efficiënt te kunnen schalen.
Wijzig het aantal knooppunten met behulp van de
az aks update
opdracht en werk de automatische schaalaanpassing van het cluster bij met behulp van de--update-cluster-autoscaler
parameter en geef het bijgewerkte knooppunt--min-count
op en--max-count
.az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --update-cluster-autoscaler \ --min-count 1 \ --max-count 5
Notitie
De automatische schaalaanpassing van clusters dwingt het minimumaantal af in gevallen waarin het werkelijke aantal lager is dan het minimum als gevolg van externe factoren, zoals tijdens een spot-verwijdering of bij het wijzigen van de minimumaantalwaarde van de AKS-API.
Het profiel voor automatische schaalaanpassing van clusters gebruiken
U kunt gedetailleerdere details van de automatische schaalaanpassing van clusters configureren door de standaardwaarden in het profiel voor automatische schaalaanpassing voor het hele cluster te wijzigen. Een gebeurtenis voor omlaag schalen vindt bijvoorbeeld plaats nadat knooppunten na 10 minuten onderbenut zijn. Als u werkbelastingen hebt die elke 15 minuten worden uitgevoerd, kunt u het profiel voor automatische schaalaanpassing wijzigen om na 15 of 20 minuten omlaag te schalen. Wanneer u automatische schaalaanpassing van clusters inschakelt, wordt een standaardprofiel gebruikt, tenzij u verschillende instellingen opgeeft.
Belangrijk
Het profiel voor automatische schaalaanpassing van clusters is van invloed op alle knooppuntgroepen die gebruikmaken van de automatische schaalaanpassing van clusters. U kunt geen profiel voor automatisch schalen per knooppuntgroep instellen. Wanneer u het profiel instelt, worden alle bestaande knooppuntgroepen waarvoor automatische schaalaanpassing van clusters is ingeschakeld, onmiddellijk met het profiel gestart.
Profielinstellingen voor automatische schaalaanpassing van clusters
De volgende tabel bevat de beschikbare instellingen voor het profiel voor automatische schaalaanpassing van clusters:
Notitie
De parameters ignore-daemonsets-tilization, daemonset-eviction-for-empty-nodes en daemonset-eviction-for-occupied-nodes parameters zijn GA van API-versie 2024-05-01. Als u de CLI gebruikt om deze vlaggen bij te werken, controleert u of u versie 2.63 of hoger gebruikt.
Het profiel voor automatische schaalaanpassing van clusters instellen op een nieuw cluster
Maak een AKS-cluster met behulp van de
az aks create
opdracht en stel het profiel voor automatische schaalaanpassing van clusters in met behulp van decluster-autoscaler-profile
parameter.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 1 \ --enable-cluster-autoscaler \ --min-count 1 \ --max-count 3 \ --cluster-autoscaler-profile scan-interval=30s \ --generate-ssh-keys
Het profiel voor automatische schaalaanpassing van clusters instellen op een bestaand cluster
Stel de automatische schaalaanpassing van clusters in op een bestaand cluster met behulp van de
az aks update
opdracht en decluster-autoscaler-profile
parameter. In het volgende voorbeeld wordt de instelling voor het scaninterval geconfigureerd als 30s:az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --cluster-autoscaler-profile scan-interval=30s
Profiel voor automatische schaalaanpassing van clusters configureren voor agressief omlaag schalen
Notitie
Omlaag schalen wordt niet aangeraden voor clusters die binnen korte intervallen vaak uitschalen en inschalen ondervinden, omdat dit in deze omstandigheden kan leiden tot langere inrichtingstijden voor knooppunten. Het verhogen scale-down-delay-after-add
kan in deze omstandigheden helpen door het knooppunt langer te houden om binnenkomende workloads te verwerken.
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--cluster-autoscaler-profile scan-interval=30s,scale-down-delay-after-add=0m,scale-down-delay-after-failure=1m,scale-down-unneeded-time=3m,scale-down-unready-time=3m,max-graceful-termination-sec=30,skip-nodes-with-local-storage=false,max-empty-bulk-delete=1000,max-total-unready-percentage=100,ok-total-unready-count=1000,max-node-provision-time=15m
Profiel voor automatische schaalaanpassing van clusters configureren voor bursty-workloads
az aks update \
--resource-group "myResourceGroup" \
--name myAKSCluster \
--cluster-autoscaler-profile scan-interval=20s,scale-down-delay-after-add=10m,scale-down-delay-after-failure=1m,scale-down-unneeded-time=5m,scale-down-unready-time=5m,max-graceful-termination-sec=30,skip-nodes-with-local-storage=false,max-empty-bulk-delete=100,max-total-unready-percentage=100,ok-total-unready-count=1000,max-node-provision-time=15m
Automatische schaalaanpassing van clusters opnieuw instellen op standaardwaarden
Stel het profiel voor automatische schaalaanpassing van clusters opnieuw in met behulp van de
az aks update
opdracht.az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --cluster-autoscaler-profile ""
Logboeken en status van automatische schaalaanpassing van clusters ophalen
U kunt logboeken en statusupdates ophalen uit de automatische schaalaanpassing van clusters om gebeurtenissen voor automatische schaalaanpassing vast te stellen en fouten op te sporen. AKS beheert de automatische schaalaanpassing van clusters namens u en voert deze uit in het beheerde besturingsvlak. U kunt het besturingsvlakknooppunt inschakelen om de logboeken en bewerkingen van de automatische schaalaanpassing van clusters te bekijken.
Stel een regel in voor resourcelogboeken om logboeken voor automatische schaalaanpassing van clusters naar Log Analytics te pushen met behulp van de instructies hier. Zorg ervoor dat u het selectievakje inschakelt bij
cluster-autoscaler
het selecteren van opties voor logboeken.Selecteer de sectie Logboek in uw cluster.
Voer de volgende voorbeeldquery in Log Analytics in:
AzureDiagnostics | where Category == "cluster-autoscaler"
Automatisch schalen van clusters weergeven, niet geactiveerde gebeurtenissen in CLI.
kubectl get events --field-selector source=cluster-autoscaler,reason=NotTriggerScaleUp
Waarschuwingen voor automatische schaalaanpassing van clusters weergeven in CLI.
kubectl get events --field-selector source=cluster-autoscaler,type=Warning
De automatische schaalaanpassing van clusters schrijft ook de status naar een
configmap
benoemdecluster-autoscaler-status
. U kunt deze logboeken ophalen met behulp van de volgendekubectl
opdracht:kubectl get configmap -n kube-system cluster-autoscaler-status -o yaml
Zie de veelgestelde vragen over het GitHub-project Kubernetes/autoscaler voor meer informatie.
Metrische gegevens voor automatische schaalaanpassing van clusters
U kunt metrische gegevens van het besturingsvlak (preview) inschakelen om de logboeken en bewerkingen van de automatische schaalaanpassing van clusters te bekijken met de beheerde Azure Monitor-service voor prometheus-invoegtoepassing
Volgende stappen
In dit artikel hebt u gezien hoe u het aantal AKS-knooppunten automatisch kunt schalen. U kunt ook de horizontale automatische schaalaanpassing van pods gebruiken om het aantal pods waarop uw toepassing wordt uitgevoerd, automatisch aan te passen. Zie Toepassingen schalen in AKS voor stappen voor het gebruik van de horizontale automatische schaalaanpassing van pods.
Zie Vertical Pod Autoscaler voor meer informatie over het verbeteren van het gebruik van clusterresources en het vrijmaken van CPU en geheugen voor andere pods.
Azure Kubernetes Service