Övning – Aktivera klusterskalbarhet på AKS
Aktivera autoskalning av kluster i ett AKS-kluster
Öppna Azure Cloud Shell i webbläsaren och välj Bash.
Skapa en Azure-resursgrupp med kommandot
az group create
.az group create --name myResourceGroup --location eastus
Skapa ett nytt AkS-kluster (Azure Kubernetes Service) med autoskalning av klustret aktiverat med hjälp av
az aks create
kommandot och--enable-cluster-autoscaler
flaggan.az aks create --resource-group myResourceGroup --name myAKSCluster --enable-addons monitoring --enable-msi-auth-for-monitoring --enable-cluster-autoscaler --min-count 1 --max-count 10 --generate-ssh-keys
Det tar några minuter att skapa klustret.
Anslut till klustret med kommandot
az aks get-credentials
.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Visa noderna i klustret med kommandot
kubectl get nodes
.kubectl get nodes
Dina utdata bör se ut ungefär som följande exempelutdata:
NAME STATUS ROLES AGE VERSION aks-nodepool1-12345678-vmss000000 Ready agent 1m v1.26.6 aks-nodepool1-12345678-vmss000001 Ready agent 1m v1.26.6 aks-nodepool1-12345678-vmss000002 Ready agent 1m v1.26.6
Distribuera exempelprogrammet
I Cloud Shell skapar du en manifestfil för Kubernetes-distributionen med namnet deployment.yml med kommandot
touch
.touch deployment.yml
Öppna manifestfilen med kommandot
code
.code deployment.yml
Klistra in följande kod i manifestfilen.
apiVersion: apps/v1 kind: Deployment metadata: name: contoso-website spec: replicas: 35 selector: matchLabels: app: contoso-website template: metadata: labels: app: contoso-website spec: containers: - image: mcr.microsoft.com/mslearn/samples/contoso-website name: contoso-website resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 80 name: http
Spara filen och stäng redigeringsprogrammet.
Uppdatera autoskalningsprofilen för kluster
Du kan finjustera autoskalningsprofilerna genom att ange en serie flaggor i konfigurationen. Visa listan över tillgängliga flaggor i Använd autoskalningsprofilen för kluster. I det här exemplet uppdaterar du autoskalningen för att minska avsökningstiden för att söka efter väntande poddar och minska den tid det behöver vänta innan du skalar ned från ett tidigare tillstånd.
Uppdatera autoskalningsprofilen
az aks update
för klustret med kommandot med--cluster-autoscaler-profile
flaggan .az aks update --resource-group myResourceGroup --name myAKSCluster --cluster-autoscaler-profile scan-interval=5s scale-down-unready-time=5m scale-down-delay-after-add=5m
Skala ned distributionen med kommandot
kubectl scale deployment
.kubectl scale deployment contoso-website --replicas 5
Kontrollera loggarna för autoskalning av kluster och fråga efter konfigurationsmappningen cluster-autoscaler-status med hjälp av
kubectl describe cm
kommandot .kubectl describe cm cluster-autoscaler-status -n kube-system
Innan nedskalningen bör dina utdata se ut ungefär som i följande exempelutdata:
Cluster-autoscaler status at 2023-11-09 20:08:14.892961701 +0000 UTC: Cluster-wide: Health: Healthy (ready=3 unready=0 notStarted=0 longNotStarted=0 registered=3 longUnregistered=0) LastProbeTime: 2023-11-09 19:56:57.890988498 +0000 UTC m=+1673.465985892 LastTransitionTime: 2023-11-09 19:45:09.593593337 +0000 UTC m=+774.168590731 ScaleUp: NoActivity (ready=3 registered=3) LastProbeTime: 2023-11-09 19:56:57.890988498 +0000 UTC m=+1673.465985892 LastTransitionTime: 2023-11-09 19:45:09.593593337 +0000 UTC m=+774.168590731 ScaleDown: CandidatesPresent (candidates=3) LastProbeTime: 2023-11-09 19:56:57.890988498 +0000 UTC m=+1673.465985892 LastTransitionTime: 2023-11-09 19:56:52.440038763 +0000 UTC m=+1101.015036157
Vänta ungefär fem minuter tills autoskalningen slutför nedskalningen och kör sedan den föregående
kubectl describe cm
.Efter nedskalningen bör dina utdata se ut ungefär som i följande exempelutdata:
Cluster-autoscaler status at 2023-11-09 20:14:39.123206413 +0000 UTC: Cluster-wide: Health: Healthy (ready=1 unready=0 (resourceUnready=0) notStarted=0 longNotStarted=0 registered=1 longUnregistered=0) LastProbeTime: 2023-11-09 20:14:39.113206413 +0000 UTC m=+2150.697175601 LastTransitionTime: 2023-11-09 19:45:09.593593337 +0000 UTC m=+774.168590731 ScaleUp: NoActivity (ready=1 registered=1) LastProbeTime: 2023-11-09 20:14:39.113206413 +0000 UTC m=+2150.697175601 LastTransitionTime: 2023-11-09 19:45:09.593593337 +0000 UTC m=+774.168590731 ScaleDown: NoCandidates (candidates=0) LastProbeTime: 2023-11-09 20:14:39.113206413 +0000 UTC m=+2150.697175601 LastTransitionTime: 2023-11-09 20:07:08.79828656 +0000 UTC m=+1718.924760896
Visa noderna i klustret med kommandot
kubectl get nodes
.kubectl get nodes
Dina utdata bör se ut ungefär som i följande exempelutdata, där antalet noder minskas till en:
NAME STATUS ROLES AGE VERSION aks-nodepool1-12345678-vmss000000 Ready agent 37m v1.26.6