Mithilfe der Vorschau des Azure Kubernetes Service (AKS) habe ich mit einem Befehl wie diesem einen Cluster mit automatischer Skalierung erstellt:
az aks create --resource-group MRRKub3 --name MRRKub3 --node-count 1 --enable-addons monitoring --kubernetes-version 1.14.1 --generate-ssh-keys --windows-admin-password xxx --windows-admin-username xxx --enable-vmss --network-plugin azure --enable-cluster-autoscaler --min-count 1 --max-count 3
Ich habe eine Spielzeug-Windows-Anwendung bereitgestellt, die in einer engen Schleife viel CPU verbraucht, und ich kann in Insights auf dem Azure-Webportal sehen, dass der einzelne Knoten tatsächlich 99 % der CPU nutzt. Ich kann die automatische Skalierung jedoch nicht aktivieren: Es werden keine zusätzlichen Knoten erstellt.
Welche Parameter muss ich festlegen (und wo), damit Azure Kubernetes erkennt, dass ich eine automatische Skalierung basierend auf der CPU-Auslastung möchte?
Ich interessiere mich für die neue Cluster-Autoskalierung, nicht so sehr für die ältere horizontale Autoskalierung.
Danke.
Antwort1
Sie sollten die Autoscaling-Regeln nicht direkt (manuell) in der VMSS festlegen – diese sollten nur vom K8S-Cluster-Autoscaler verwaltet werden.
Sie sollten die CLI-Befehle verwenden, um die Autoscale-Regeln des K8S-Autoscalers wie folgt zu konfigurieren:
kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10
wie in diesem Tutorial: https://docs.microsoft.com/en-us/azure/aks/tutorial-kubernetes-scale