Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Se sono state seguite le esercitazioni precedenti, si dispone di un cluster Kubernetes funzionante e di un'app front di Azure Store.
In questa esercitazione, aumenti il numero di pod nell'applicazione, provi la scalabilità automatica dei pod e ridimensioni i nodi delle macchine virtuali di Azure per modificare la capacità del cluster nell'ospitare i carichi di lavoro. Scopri come:
- Ridimensionare i nodi Kubernetes.
- Ridimensionare manualmente i pod Kubernetes che eseguono l'applicazione.
- Configurare la scalabilità automatica dei pod che eseguono il front-end dell'app.
Operazioni preliminari
Nelle esercitazioni precedenti è stata inserita un'applicazione in un'immagine del contenitore, è stata caricata l'immagine in Registro Azure Container, è stato creato un cluster del servizio Azure Kubernetes, è stata distribuita un'applicazione ed è stato usato il bus di servizio di Azure per ridistribuire un'applicazione aggiornata. Se questi passaggi non sono stati completati e si vuole seguire questa procedura, iniziare con Esercitazione 1 - Preparare l'applicazione per il servizio Azure Kubernetes.
Questa esercitazione richiede l'interfaccia della riga di comando di Azure 2.34.1 o versioni successive. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
Scalare manualmente i pod
Visualizzare i pod nel cluster usando il comando
kubectl get.kubectl get podsL'output di esempio seguente mostra i pod che eseguono l'app Front di Azure Store:
NAME READY STATUS RESTARTS AGE order-service-848767080-tf34m 1/1 Running 0 31m product-service-4019737227-2q2qz 1/1 Running 0 31m store-front-2606967446-2q2qz 1/1 Running 0 31mModificare manualmente il numero di pod nella distribuzione store-front usando il comando
kubectl scale.kubectl scale --replicas=5 deployment.apps/store-frontVerificare che i pod aggiuntivi siano stati creati usando il comando
kubectl get pods.kubectl get pods --selector app=store-frontL'output di esempio seguente mostra i pod aggiuntivi che eseguono l'app Front di Azure Store:
NAME READY STATUS RESTARTS AGE store-front-3309479140-2hfh0 1/1 Running 0 3m store-front-3309479140-bzt05 1/1 Running 0 3m store-front-3309479140-fvcvm 1/1 Running 0 3m store-front-3309479140-hrbf2 1/1 Running 0 15m store-front-3309479140-qphz8 1/1 Running 0 3m
Scalare automaticamente i pod
Per usare la scalabilità automatica orizzontale dei pod, tutti i contenitori devono avere richieste e limiti di CPU definiti e i pod devono avere richieste specificate. Nella distribuzione aks-store-quickstart, il contenitore front-end richiede 1 milione di CPU con un limite di 1000 m di CPU.
Queste richieste e limiti di risorse vengono definiti per ogni contenitore, come illustrato nell'esempio seguente YAML di esempio:
...
containers:
- name: store-front
image: ghcr.io/azure-samples/aks-store-demo/store-front:latest
ports:
- containerPort: 8080
name: store-front
...
resources:
requests:
cpu: 1m
...
limits:
cpu: 1000m
...
Ridimensionare automaticamente i pod usando un file manifesto
Creare un file manifesto per definire il comportamento del ridimensionamento automatico e i limiti delle risorse, come illustrato nel file manifesto
aks-store-quickstart-hpa.yamldi esempio condensato seguente:apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: store-front-hpa spec: maxReplicas: 10 # define max replica count minReplicas: 3 # define min replica count scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: store-front metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50Applicare il file manifesto di scalabilità automatica usando il comando
kubectl apply.kubectl apply -f aks-store-quickstart-hpa.yamlControllare lo stato del ridimensionamento automatico usando il comando
kubectl get hpa.kubectl get hpaDopo pochi minuti con un carico minimo sull'app Azure Store Front, il numero di repliche di pod si riduce a tre. È possibile usare di nuovo il comando
kubectl get podsper vedere i pod non necessari che vengono rimossi.
Nota
È possibile abilitare il componente aggiuntivo del servizio Azure Kubernetes basato su eventi (KEDA) del servizio Azure Kubernetes per favorire il ridimensionamento in base al numero di eventi che devono essere elaborati. Per altre informazioni, vedere Abilitare la scalabilità automatica semplificata delle applicazioni con il componente aggiuntivo KeDA (Event-Driven AutoScaling) di Kubernetes (anteprima).
Ridimensionare manualmente i nodi servizio Azure Kubernetes
Se il cluster Kubernetes è stato creato usando i comandi delle esercitazioni precedenti, il cluster ha due nodi. Se si vuole aumentare o ridurre questa quantità, è possibile regolare manualmente il numero di nodi.
Nell'esempio seguente il numero di nodi viene aumentato a tre nel cluster Kubernetes denominato myAKSCluster. Il completamento del comando richiede alcuni minuti.
Ridimensionare i nodi del cluster usando il comando
az aks scale.az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3Una volta ridimensionato correttamente il cluster, l'output sarà simile all'output di esempio seguente:
"aadProfile": null, "addonProfiles": null, "agentPoolProfiles": [ { ... "count": 3, "mode": "System", "name": "nodepool1", "osDiskSizeGb": 128, "osDiskType": "Managed", "osType": "Linux", "ports": null, "vmSize": "Standard_DS2_v2", "vnetSubnetId": null ... } ... ]
È anche possibile ridimensionare automaticamente i nodi nel cluster. Per altre informazioni, vedere Usare il ridimensionamento automatico del cluster con pool di nodi.
Passaggi successivi
In questa esercitazione sono state usate diverse funzionalità di scalabilità nel cluster Kubernetes. Contenuto del modulo:
- Ridimensionare manualmente i pod Kubernetes che eseguono l'applicazione.
- Configurare la scalabilità automatica dei pod che eseguono il front-end dell'app.
- Ridimensionare manualmente i nodi Kubernetes.
Nell'esercitazione successiva si apprenderà come aggiornare Kubernetes nel cluster del servizio Azure Kubernetes.
Azure Kubernetes Service